39 #define REC_INFO_MIN_REC_FLAG 0x10UL
41 #define REC_INFO_DELETED_FLAG 0x20UL
46 #define REC_N_OLD_EXTRA_BYTES 6
49 #define REC_N_NEW_EXTRA_BYTES 5
52 #define REC_STATUS_ORDINARY 0
53 #define REC_STATUS_NODE_PTR 1
54 #define REC_STATUS_INFIMUM 2
55 #define REC_STATUS_SUPREMUM 3
61 #define REC_NEW_HEAP_NO 4
64 #define REC_HEAP_NO_SHIFT 3
67 #define REC_NODE_PTR_SIZE 4
70 #define REC_1BYTE_SQL_NULL_MASK 0x80UL
72 #define REC_2BYTE_SQL_NULL_MASK 0x8000UL
76 #define REC_2BYTE_EXTERN_MASK 0x4000UL
80 # define REC_OFFS_HEADER_SIZE 4
83 # define REC_OFFS_HEADER_SIZE 2
88 #define REC_OFFS_NORMAL_SIZE 100
89 #define REC_OFFS_SMALL_SIZE 10
101 __attribute__((nonnull, pure, warn_unused_result));
112 __attribute__((nonnull, pure, warn_unused_result));
123 __attribute__((nonnull, pure, warn_unused_result));
133 __attribute__((nonnull));
143 __attribute__((nonnull));
153 __attribute__((nonnull, pure, warn_unused_result));
164 __attribute__((nonnull, pure, warn_unused_result));
174 __attribute__((nonnull, pure, warn_unused_result));
183 __attribute__((nonnull));
193 __attribute__((nonnull, pure, warn_unused_result));
203 __attribute__((nonnull(1)));
214 __attribute__((nonnull, pure, warn_unused_result));
223 __attribute__((nonnull));
232 __attribute__((nonnull));
241 __attribute__((nonnull, pure, warn_unused_result));
251 __attribute__((nonnull));
263 __attribute__((nonnull, pure, warn_unused_result));
273 __attribute__((nonnull));
284 __attribute__((nonnull, pure, warn_unused_result));
293 __attribute__((nonnull));
303 __attribute__((nonnull(1)));
312 __attribute__((nonnull, pure, warn_unused_result));
322 __attribute__((nonnull, pure, warn_unused_result));
332 __attribute__((nonnull));
342 __attribute__((nonnull, pure, warn_unused_result));
352 __attribute__((nonnull));
362 __attribute__((nonnull, pure, warn_unused_result));
372 __attribute__((nonnull));
385 __attribute__((nonnull, pure, warn_unused_result));
399 __attribute__((nonnull, pure, warn_unused_result));
411 __attribute__((nonnull, pure, warn_unused_result));
424 __attribute__((nonnull, warn_unused_result));
449 __attribute__((nonnull(1,2,5,7),warn_unused_result));
451 __attribute__((nonnull(1,2,5),warn_unused_result));
455 # define rec_get_offsets(rec,index,offsets,n,heap) \
456 rec_get_offsets_func(rec,index,offsets,n,__FILE__,__LINE__,heap)
458 # define rec_get_offsets(rec, index, offsets, n, heap) \
459 rec_get_offsets_func(rec, index, offsets, n, heap)
478 __attribute__((nonnull));
489 const ulint* offsets)
491 __attribute__((nonnull(3), warn_unused_result));
503 __attribute__((nonnull));
505 # define rec_offs_make_valid(rec, index, offsets) ((void) 0)
520 __attribute__((nonnull));
521 #define rec_get_nth_field_old(rec, n, len) \
522 ((rec) + rec_get_nth_field_offs_old(rec, n, len))
534 __attribute__((nonnull, pure, warn_unused_result));
543 const ulint* offsets,
547 __attribute__((nonnull));
548 #define rec_get_nth_field(rec, offsets, n, len) \
549 ((rec) + rec_get_nth_field_offs(offsets, n, len))
558 const ulint* offsets)
559 __attribute__((nonnull, pure, warn_unused_result));
568 const ulint* offsets)
569 __attribute__((nonnull, pure, warn_unused_result));
578 const ulint* offsets)
579 __attribute__((nonnull, pure, warn_unused_result));
587 const ulint* offsets,
589 __attribute__((nonnull, pure, warn_unused_result));
597 const ulint* offsets,
599 __attribute__((nonnull, pure, warn_unused_result));
607 const ulint* offsets,
609 __attribute__((nonnull, pure, warn_unused_result));
618 const ulint* offsets)
619 __attribute__((nonnull, pure, warn_unused_result));
631 const ulint* offsets,
639 __attribute__((nonnull(1,2)));
651 __attribute__((nonnull, pure, warn_unused_result));
660 const ulint* offsets)
661 __attribute__((nonnull, pure, warn_unused_result));
672 __attribute__((nonnull));
673 #define rec_offs_init(offsets) \
674 rec_offs_set_n_alloc(offsets, (sizeof offsets) / sizeof *offsets)
682 const ulint* offsets)
683 __attribute__((nonnull, pure, warn_unused_result));
694 const ulint* offsets)
695 __attribute__((nonnull, pure, warn_unused_result));
705 const ulint* offsets)
706 __attribute__((nonnull, pure, warn_unused_result));
714 const ulint* offsets)
715 __attribute__((nonnull, pure, warn_unused_result));
725 const ulint* offsets)
726 __attribute__((nonnull, pure, warn_unused_result));
735 const ulint* offsets)
736 __attribute__((nonnull, pure, warn_unused_result));
738 # define rec_get_start(rec, offsets) ((rec) - rec_offs_extra_size(offsets))
739 # define rec_get_end(rec, offsets) ((rec) + rec_offs_data_size(offsets))
750 const ulint* offsets)
751 __attribute__((nonnull));
752 #ifndef UNIV_HOTBACKUP
764 __attribute__((warn_unused_result, nonnull));
777 __attribute__((nonnull));
790 __attribute__((nonnull));
808 __attribute__((nonnull));
817 const ulint* offsets,
824 __attribute__((nonnull, pure, warn_unused_result));
840 __attribute__((nonnull, warn_unused_result));
852 __attribute__((
const));
864 __attribute__((warn_unused_result, nonnull(1,2)));
880 __attribute__((nonnull(1,3)));
892 __attribute__((warn_unused_result, nonnull));
893 #ifndef UNIV_HOTBACKUP
907 __attribute__((nonnull));
917 const ulint* offsets)
918 __attribute__((nonnull));
927 __attribute__((nonnull));
928 #ifndef UNIV_HOTBACKUP
938 const ulint* offsets)
939 __attribute__((nonnull));
948 const ulint* offsets)
949 __attribute__((nonnull));
959 __attribute__((nonnull));
971 __attribute__((nonnull, warn_unused_result));
977 #define REC_1BYTE_OFFS_LIMIT 0x7FUL
978 #define REC_2BYTE_OFFS_LIMIT 0x7FFFUL
982 #define REC_MAX_DATA_SIZE (16 * 1024)