InnoDB Plugin  1.0
mtr0log.h
Go to the documentation of this file.
1 /*****************************************************************************
2 
3 Copyright (c) 1995, 2009, 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 mtr0log_h
27 #define mtr0log_h
28 
29 #include "univ.i"
30 #include "mtr0mtr.h"
31 #include "dict0types.h"
32 
33 #ifndef UNIV_HOTBACKUP
34 /********************************************************/
37 UNIV_INTERN
38 void
40 /*=============*/
41  byte* ptr,
42  ulint val,
43  byte type,
44  mtr_t* mtr);
45 /********************************************************/
48 UNIV_INTERN
49 void
51 /*===========*/
52  byte* ptr,
53  ib_uint64_t val,
54  mtr_t* mtr);
55 /********************************************************/
58 UNIV_INTERN
59 void
61 /*==============*/
62  byte* ptr,
63  const byte* str,
64  ulint len,
65  mtr_t* mtr);
66 /********************************************************/
69 UNIV_INTERN
70 void
72 /*============*/
73  byte* ptr,
74  ulint len,
75  mtr_t* mtr);
76 /********************************************************/
79 UNIV_INTERN
80 void
82 /*==========================*/
83  const byte* ptr,
86  byte type,
87  mtr_t* mtr);
88 /********************************************************/
91 UNIV_INLINE
92 byte*
94 /*======================================*/
95  ulint type,
97  ulint space_id,
98  ulint page_no,
99  byte* log_ptr,
100  mtr_t* mtr);
101 /********************************************************/
103 UNIV_INLINE
104 void
106 /*================*/
107  mtr_t* mtr,
108  ulint val,
109  ulint type);
110 /********************************************************/
112 UNIV_INTERN
113 void
115 /*=================*/
116  mtr_t* mtr,
117  const byte* str,
118  ulint len);
119 /********************************************************/
121 UNIV_INLINE
122 void
124 /*===========================*/
125  mtr_t* mtr,
126  ulint val);
127 /********************************************************/
129 UNIV_INLINE
130 void
132 /*=========================*/
133  mtr_t* mtr,
134  ib_uint64_t val);
135 /********************************************************/
138 UNIV_INLINE
139 byte*
140 mlog_open(
141 /*======*/
142  mtr_t* mtr,
143  ulint size);
145 /********************************************************/
147 UNIV_INLINE
148 void
149 mlog_close(
150 /*=======*/
151  mtr_t* mtr,
152  byte* ptr);
153 /********************************************************/
158 UNIV_INLINE
159 byte*
161 /*===============================*/
162  const byte* ptr,
165  byte type,
166  byte* log_ptr,
168  mtr_t* mtr);
169 #else /* !UNIV_HOTBACKUP */
170 # define mlog_write_initial_log_record(ptr,type,mtr) ((void) 0)
171 # define mlog_write_initial_log_record_fast(ptr,type,log_ptr,mtr) ((byte*) 0)
172 #endif /* !UNIV_HOTBACKUP */
173 /********************************************************/
176 UNIV_INTERN
177 byte*
179 /*==========================*/
180  byte* ptr,
181  byte* end_ptr,
182  byte* type,
183  ulint* space,
184  ulint* page_no);
185 /********************************************************/
188 UNIV_INTERN
189 byte*
191 /*==============*/
192  ulint type,
193  byte* ptr,
194  byte* end_ptr,
195  byte* page,
196  void* page_zip);
197 /********************************************************/
200 UNIV_INTERN
201 byte*
203 /*==============*/
204  byte* ptr,
205  byte* end_ptr,
206  byte* page,
207  void* page_zip);
209 #ifndef UNIV_HOTBACKUP
210 /********************************************************/
216 UNIV_INTERN
217 byte*
219 /*======================*/
220  mtr_t* mtr,
221  const byte* rec,
222  const dict_index_t* index,
223  byte type,
224  ulint size);
227 #endif /* !UNIV_HOTBACKUP */
228 
229 /********************************************************/
232 UNIV_INTERN
233 byte*
235 /*=============*/
236  byte* ptr,
237  const byte* end_ptr,
238  ibool comp,
239  dict_index_t** index);
241 #ifndef UNIV_HOTBACKUP
242 /* Insert, update, and maybe other functions may use this value to define an
243 extra mlog buffer size for variable size data */
244 #define MLOG_BUF_MARGIN 256
245 #endif /* !UNIV_HOTBACKUP */
246 
247 #ifndef UNIV_NONINL
248 #include "mtr0log.ic"
249 #endif
250 
251 #endif