108#define PAGE_OLD_INFIMUM (PAGE_DATA + 1 + REC_N_OLD_EXTRA_BYTES)
112#define PAGE_OLD_SUPREMUM (PAGE_DATA + 2 + 2 * REC_N_OLD_EXTRA_BYTES + 8)
115#define PAGE_OLD_SUPREMUM_END (PAGE_OLD_SUPREMUM + 9)
118#define PAGE_NEW_INFIMUM (PAGE_DATA + REC_N_NEW_EXTRA_BYTES)
121#define PAGE_NEW_SUPREMUM (PAGE_DATA + 2 * REC_N_NEW_EXTRA_BYTES + 8)
124#define PAGE_NEW_SUPREMUM_END (PAGE_NEW_SUPREMUM + 8)
149#define page_t ib_page_t
172 "PAGE_ZIP_SSIZE_MAX >= (1 << PAGE_ZIP_SSIZE_BITS)");
249typedef std::map<index_id_t, page_zip_stat_t, std::less<index_id_t>,
Allocator that allows std::* containers to manage their memory through ut::malloc* and ut::free libra...
Definition: ut0new.h:2180
Data dictionary global types.
constexpr uint32_t FSEG_PAGE_DATA
On a page of any file segment, data may be put starting from this offset.
Definition: fsp0types.h:78
constexpr uint32_t FSEG_HEADER_SIZE
Length of the file system header, in bytes.
Definition: fsp0types.h:93
static int flag
Definition: hp_test1.cc:39
#define free(A)
Definition: lexyy.cc:915
Mini-transaction buffer global types.
constexpr uint32_t PAGE_HEADER
index page header starts at this offset
Definition: page0types.h:52
page_zip_stat_t page_zip_stat[PAGE_ZIP_SSIZE_MAX]
Statistics on compression, indexed by page_zip_des_t::ssize - 1.
Definition: page0zip.cc:74
cursor_direction_t
Definition: page0types.h:140
@ PAGE_SAME_PAGE
Definition: page0types.h:144
@ PAGE_LEFT
Definition: page0types.h:141
@ PAGE_RIGHT
Definition: page0types.h:142
@ PAGE_SAME_REC
Definition: page0types.h:143
@ PAGE_NO_DIRECTION
Definition: page0types.h:145
page_cur_mode_t
Definition: page0types.h:175
@ PAGE_CUR_LE
Definition: page0types.h:180
@ PAGE_CUR_G
Definition: page0types.h:177
@ PAGE_CUR_UNSUPP
Definition: page0types.h:176
@ PAGE_CUR_CONTAIN
Definition: page0types.h:188
@ PAGE_CUR_INTERSECT
Definition: page0types.h:189
@ PAGE_CUR_MBR_EQUAL
Definition: page0types.h:192
@ PAGE_CUR_RTREE_LOCATE
Definition: page0types.h:194
@ PAGE_CUR_WITHIN
Definition: page0types.h:190
@ PAGE_CUR_L
Definition: page0types.h:179
@ PAGE_CUR_RTREE_GET_FATHER
Definition: page0types.h:195
@ PAGE_CUR_GE
Definition: page0types.h:178
@ PAGE_CUR_RTREE_INSERT
Definition: page0types.h:193
@ PAGE_CUR_DISJOINT
Definition: page0types.h:191
void page_zip_rec_set_owned(page_zip_des_t *page_zip, const byte *rec, ulint flag)
Write the "owned" flag of a record on a compressed page.
Definition: page0zip.cc:2242
constexpr uint32_t PAGE_DATA
start of data on the page
Definition: page0types.h:104
constexpr uint8_t PAGE_ZIP_SSIZE_BITS
Number of bits needed for representing different compressed page sizes.
Definition: page0types.h:163
constexpr uint32_t PAGE_N_DIRECTION
number of consecutive inserts to the same direction
Definition: page0types.h:71
constexpr uint32_t PAGE_INDEX_ID
index id where the page belongs.
Definition: page0types.h:86
constexpr uint32_t PAGE_N_RECS
number of user records on the page
Definition: page0types.h:73
constexpr uint32_t PAGE_GARBAGE
number of bytes in deleted records
Definition: page0types.h:64
constexpr uint32_t PAGE_BTR_IBUF_FREE_LIST_NODE
Definition: page0types.h:91
constexpr uint32_t PAGE_MAX_TRX_ID
highest id of a trx which may have modified a record on the page; trx_id_t; defined only in secondary...
Definition: page0types.h:76
constexpr ulint PAGE_HEAP_NO_INFIMUM
Page infimum.
Definition: page0types.h:130
byte page_header_t
Definition: page0types.h:49
constexpr ulint PAGE_HEAP_NO_SUPREMUM
Page supremum.
Definition: page0types.h:132
constexpr uint32_t PAGE_BTR_SEG_LEAF
file segment header for the leaf pages in a B-tree: defined only on the root page of a B-tree,...
Definition: page0types.h:89
constexpr uint32_t PAGE_ZIP_SSIZE_MAX
Maximum compressed page shift size.
Definition: page0types.h:166
std::map< index_id_t, page_zip_stat_t, std::less< index_id_t >, ut::allocator< std::pair< const index_id_t, page_zip_stat_t > > > page_zip_stat_per_index_t
Compression statistics types.
Definition: page0types.h:251
constexpr uint32_t PAGE_LAST_INSERT
pointer to the last inserted record, or NULL if this info has been reset by a delete,...
Definition: page0types.h:67
constexpr uint32_t PAGE_N_HEAP
number of records in the heap, bit 15=flag: new-style compact page format
Definition: page0types.h:60
constexpr uint32_t PAGE_DIRECTION
last insert direction: PAGE_LEFT, ...
Definition: page0types.h:69
void page_zip_rec_set_deleted(page_zip_des_t *page_zip, const byte *rec, bool flag)
Write the "deleted" flag of a record on a compressed page.
Definition: page0zip.cc:2219
constexpr uint32_t PAGE_FREE
pointer to start of page free record list
Definition: page0types.h:62
void page_zip_dir_delete(page_zip_des_t *page_zip, byte *rec, dict_index_t *index, const ulint *offsets, const byte *free)
Shift the dense page directory when a record is deleted.
constexpr uint32_t PAGE_LEVEL
level of the node in an index tree; the leaf level is the level 0.
Definition: page0types.h:83
constexpr uint32_t PAGE_HEAP_TOP
pointer to record heap top
Definition: page0types.h:58
constexpr uint32_t PAGE_HEADER_PRIV_END
end of private data structure of the page header which are set in a page create
Definition: page0types.h:79
void page_zip_dir_add_slot(page_zip_des_t *page_zip, bool is_clustered)
Add a slot to the dense page directory.
Definition: page0zip.cc:2414
constexpr uint32_t PAGE_BTR_SEG_TOP
Definition: page0types.h:97
constexpr uint32_t PAGE_BTR_IBUF_FREE_LIST
Definition: page0types.h:90
constexpr uint32_t PAGE_N_DIR_SLOTS
number of slots in page directory
Definition: page0types.h:56
byte page_zip_t
Compressed index page.
Definition: page0types.h:153
constexpr ulint PAGE_HEAP_NO_USER_LOW
First user record in creation (insertion) order, not necessarily collation order; this record may hav...
Definition: page0types.h:136
#define page_t
Eliminates a name collision on HP-UX.
Definition: page0types.h:149
page_zip_stat_per_index_t page_zip_stat_per_index
Statistics on compression, indexed by dict_index_t::id.
Definition: page0zip.cc:82
Data structure for an index.
Definition: dict0mem.h:1045
Index page cursor.
Definition: page0cur.h:310
Compressed page descriptor.
Definition: page0types.h:199
uint16_t m_start
Start offset of modification log.
Definition: page0types.h:205
uint16_t n_blobs
Number of externally stored columns on the page; the maximum is 744 on a 16 KiB page.
Definition: page0types.h:215
uint8_t ssize
0 or compressed page shift size; the size in bytes is: (UNIV_ZIP_SIZE_MIN * >> 1) << ssize.
Definition: page0types.h:222
bool m_nonempty
true if the modification log is not empty.
Definition: page0types.h:218
uint16_t m_end
End offset of modification log.
Definition: page0types.h:211
page_zip_t * data
Compressed page data.
Definition: page0types.h:201
bool m_external
Allocated externally, not from the buffer pool.
Definition: page0types.h:207
Compression statistics for a given page size.
Definition: page0types.h:226
ulint compressed_ok
Number of successful page compressions.
Definition: page0types.h:230
ulint decompressed
Number of page decompressions.
Definition: page0types.h:232
std::chrono::microseconds decompress_time
Duration of page decompressions.
Definition: page0types.h:236
ulint compressed
Number of page compressions.
Definition: page0types.h:228
std::chrono::microseconds compress_time
Duration of page compressions.
Definition: page0types.h:234
page_zip_stat_t()
Definition: page0types.h:237
Version control for database, common definitions, and include files.
constexpr uint32_t UNIV_ZIP_SIZE_SHIFT_MIN
log2 of smallest compressed page size (1<<10 == 1024 bytes) Note: This must never change!
Definition: univ.i:297
unsigned long int ulint
Definition: univ.i:405
constexpr uint32_t UNIV_ZIP_SIZE_SHIFT_MAX
log2 of largest compressed page size (1<<14 == 16384 bytes).
Definition: univ.i:305
Dynamic memory allocation routines and custom allocators specifically crafted to support memory instr...