InnoDB Plugin  1.0
row0purge.h
Go to the documentation of this file.
1 /*****************************************************************************
2 
3 Copyright (c) 1997, 2012, Oracle and/or its affiliates. All Rights Reserved.
4 
5 This program is free software; you can redistribute it and/or modify it under
6 the terms of the GNU General Public License as published by the Free Software
7 Foundation; version 2 of the License.
8 
9 This program is distributed in the hope that it will be useful, but WITHOUT
10 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 
13 You should have received a copy of the GNU General Public License along with
14 this program; if not, write to the Free Software Foundation, Inc.,
15 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
16 
17 *****************************************************************************/
18 
19 /**************************************************/
26 #ifndef row0purge_h
27 #define row0purge_h
28 
29 #include "univ.i"
30 #include "data0data.h"
31 #include "btr0types.h"
32 #include "btr0pcur.h"
33 #include "dict0types.h"
34 #include "trx0types.h"
35 #include "que0types.h"
36 #include "row0types.h"
37 #include "row0purge.h"
38 #include "ut0vec.h"
39 
40 /********************************************************************/
43 UNIV_INTERN
46 /*==================*/
47  que_thr_t* parent,
49  mem_heap_t* heap)
50  __attribute__((nonnull, warn_unused_result));
51 /***********************************************************/
66 UNIV_INTERN
67 bool
69 /*===============*/
70  purge_node_t* node,
71  dict_index_t* index,
72  const dtuple_t* entry)
73  __attribute__((nonnull, warn_unused_result));
74 /***************************************************************
75 Does the purge operation for a single undo log record. This is a high-level
76 function used in an SQL execution graph.
77 @return query thread to run next or NULL */
78 UNIV_INTERN
79 que_thr_t*
81 /*===========*/
82  que_thr_t* thr)
83  __attribute__((nonnull, warn_unused_result));
84 
85 /* Purge node structure */
86 
87 struct purge_node_t{
89  /*----------------------*/
90  /* Local storage for this graph node */
91  roll_ptr_t roll_ptr;/* roll pointer to undo log record */
94  undo_no_t undo_no;/* undo number of the record */
95 
96  ulint rec_type;/* undo log record type: TRX_UNDO_INSERT_REC,
97  ... */
100  ulint cmpl_info;/* compiler analysis info of an update */
101 
114  ibool found_clust;/* TRUE if the clustered index record
115  determined by ref was found in the clustered
116  index, and we were able to position pcur on
117  it */
120  ibool done; /* Debug flag */
121 
122 };
123 
124 #ifndef UNIV_NONINL
125 #include "row0purge.ic"
126 #endif
127 
128 #endif