38 #ifndef UNIV_HOTBACKUP
41 #define BTR_PAGE_MAX_REC_SIZE (UNIV_PAGE_SIZE / 2 - 200)
52 #define BTR_MAX_LEVELS 100
77 #define BTR_INSERT 512
81 #define BTR_ESTIMATE 1024
86 #define BTR_IGNORE_SEC_UNIQUE 2048
90 #define BTR_DELETE_MARK 4096
94 #define BTR_DELETE 8192
98 #define BTR_ALREADY_S_LATCHED 16384
100 #define BTR_LATCH_MODE_WITHOUT_FLAGS(latch_mode) \
101 ((latch_mode) & ~(BTR_INSERT \
105 | BTR_IGNORE_SEC_UNIQUE \
106 | BTR_ALREADY_S_LATCHED))
117 UNIV_COLD __attribute__((nonnull));
122 #define btr_assert_not_corrupted(block, index) \
123 if ((ibool) !!page_is_comp(buf_block_get_frame(block)) \
124 != dict_table_is_comp((index)->table)) { \
125 btr_corruption_report(block, index); \
129 #ifndef UNIV_HOTBACKUP
130 #ifdef UNIV_BLOB_DEBUG
133 struct btr_blob_dbg_t
135 unsigned blob_page_no:32;
136 unsigned ref_page_no:32;
137 unsigned ref_heap_no:16;
138 unsigned ref_field_no:10;
140 unsigned always_owner:1;
152 btr_blob_dbg_add_blob(
159 __attribute__((nonnull));
169 __attribute__((nonnull));
176 btr_blob_dbg_is_empty(
180 __attribute__((nonnull, warn_unused_result));
186 btr_blob_dbg_set_deleted_flag(
190 const ulint* offsets,
192 __attribute__((nonnull));
201 const ulint* offsets,
204 __attribute__((nonnull));
206 # define btr_blob_dbg_assert_empty(index, page_no) \
207 ut_a(btr_blob_dbg_is_empty(index, page_no))
209 # define btr_blob_dbg_add_blob(rec, field_no, page, index, ctx) ((void) 0)
210 # define btr_blob_dbg_set_deleted_flag(rec, index, offsets, del)((void) 0)
211 # define btr_blob_dbg_owner(rec, index, offsets, i, val) ((void) 0)
212 # define btr_blob_dbg_assert_empty(index, page_no) ((void) 0)
224 __attribute__((nonnull));
234 __attribute__((nonnull, warn_unused_result));
247 __attribute__((nonnull, warn_unused_result));
261 # ifdef UNIV_SYNC_DEBUG
266 # ifdef UNIV_SYNC_DEBUG
275 # define btr_block_get(space,zip_size,page_no,mode,index,mtr) \
276 btr_block_get_func(space,zip_size,page_no,mode, \
277 __FILE__,__LINE__,index,mtr)
287 # define btr_block_get(space,zip_size,page_no,mode,idx,mtr) \
288 btr_block_get_func(space,zip_size,page_no,mode,__FILE__,__LINE__,mtr)
298 # define btr_page_get(space,zip_size,page_no,mode,idx,mtr) \
299 buf_block_get_frame(btr_block_get(space,zip_size,page_no,mode,idx,mtr))
309 __attribute__((nonnull, pure, warn_unused_result));
310 #ifndef UNIV_HOTBACKUP
319 __attribute__((nonnull, pure, warn_unused_result));
320 #define btr_page_get_level(page, mtr) btr_page_get_level_low(page)
330 __attribute__((nonnull, warn_unused_result));
340 __attribute__((nonnull, warn_unused_result));
352 __attribute__((nonnull, warn_unused_result));
364 __attribute__((nonnull, warn_unused_result));
375 __attribute__((nonnull));
388 const ulint* offsets)
389 __attribute__((nonnull, pure, warn_unused_result));
404 __attribute__((nonnull));
427 __attribute__((nonnull));
450 __attribute__((nonnull, warn_unused_result));
476 __attribute__((nonnull, warn_unused_result));
495 __attribute__((nonnull));
508 __attribute__((nonnull, warn_unused_result));
521 __attribute__((nonnull, warn_unused_result));
545 __attribute__((nonnull, warn_unused_result));
560 __attribute__((nonnull));
561 # define btr_insert_on_non_leaf_level(f,i,l,t,m) \
562 btr_insert_on_non_leaf_level_func(f,i,l,t,__FILE__,__LINE__,m)
572 __attribute__((nonnull));
573 #ifndef UNIV_HOTBACKUP
583 __attribute__((nonnull));
595 __attribute__((nonnull, warn_unused_result));
618 __attribute__((nonnull));
630 __attribute__((nonnull));
645 __attribute__((nonnull(1,2), warn_unused_result));
659 __attribute__((nonnull(1,2,3), warn_unused_result));
660 #ifndef UNIV_HOTBACKUP
672 __attribute__((nonnull, warn_unused_result));
695 __attribute__((nonnull, warn_unused_result));
706 __attribute__((nonnull));
719 __attribute__((nonnull));
720 #ifdef UNIV_BTR_PRINT
728 __attribute__((nonnull));
738 __attribute__((nonnull));
753 __attribute__((nonnull, warn_unused_result));
763 __attribute__((nonnull(1), warn_unused_result));
765 #define BTR_N_LEAF_PAGES 1
766 #define BTR_TOTAL_SIZE 2