109#define PAGE_OLD_INFIMUM (PAGE_DATA + 1 + REC_N_OLD_EXTRA_BYTES)
113#define PAGE_OLD_SUPREMUM (PAGE_DATA + 2 + 2 * REC_N_OLD_EXTRA_BYTES + 8)
116#define PAGE_OLD_SUPREMUM_END (PAGE_OLD_SUPREMUM + 9)
119#define PAGE_NEW_INFIMUM (PAGE_DATA + REC_N_NEW_EXTRA_BYTES)
122#define PAGE_NEW_SUPREMUM (PAGE_DATA + 2 * REC_N_NEW_EXTRA_BYTES + 8)
125#define PAGE_NEW_SUPREMUM_END (PAGE_NEW_SUPREMUM + 8)
150#define page_t ib_page_t
173 "PAGE_ZIP_SSIZE_MAX >= (1 << PAGE_ZIP_SSIZE_BITS)");
250typedef 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:2182
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:79
constexpr uint32_t FSEG_HEADER_SIZE
Length of the file system header, in bytes.
Definition: fsp0types.h:94
static int flag
Definition: hp_test1.cc:40
#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:53
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:75
cursor_direction_t
Definition: page0types.h:141
@ PAGE_SAME_PAGE
Definition: page0types.h:145
@ PAGE_LEFT
Definition: page0types.h:142
@ PAGE_RIGHT
Definition: page0types.h:143
@ PAGE_SAME_REC
Definition: page0types.h:144
@ PAGE_NO_DIRECTION
Definition: page0types.h:146
page_cur_mode_t
Definition: page0types.h:176
@ PAGE_CUR_LE
Definition: page0types.h:181
@ PAGE_CUR_G
Definition: page0types.h:178
@ PAGE_CUR_UNSUPP
Definition: page0types.h:177
@ PAGE_CUR_CONTAIN
Definition: page0types.h:189
@ PAGE_CUR_INTERSECT
Definition: page0types.h:190
@ PAGE_CUR_MBR_EQUAL
Definition: page0types.h:193
@ PAGE_CUR_RTREE_LOCATE
Definition: page0types.h:195
@ PAGE_CUR_WITHIN
Definition: page0types.h:191
@ PAGE_CUR_L
Definition: page0types.h:180
@ PAGE_CUR_RTREE_GET_FATHER
Definition: page0types.h:196
@ PAGE_CUR_GE
Definition: page0types.h:179
@ PAGE_CUR_RTREE_INSERT
Definition: page0types.h:194
@ PAGE_CUR_DISJOINT
Definition: page0types.h:192
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:105
constexpr uint8_t PAGE_ZIP_SSIZE_BITS
Number of bits needed for representing different compressed page sizes.
Definition: page0types.h:164
constexpr uint32_t PAGE_N_DIRECTION
number of consecutive inserts to the same direction
Definition: page0types.h:72
constexpr uint32_t PAGE_INDEX_ID
index id where the page belongs.
Definition: page0types.h:87
constexpr uint32_t PAGE_N_RECS
number of user records on the page
Definition: page0types.h:74
constexpr uint32_t PAGE_GARBAGE
number of bytes in deleted records
Definition: page0types.h:65
constexpr uint32_t PAGE_BTR_IBUF_FREE_LIST_NODE
Definition: page0types.h:92
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:77
constexpr ulint PAGE_HEAP_NO_INFIMUM
Page infimum.
Definition: page0types.h:131
byte page_header_t
Definition: page0types.h:50
constexpr ulint PAGE_HEAP_NO_SUPREMUM
Page supremum.
Definition: page0types.h:133
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:90
constexpr uint32_t PAGE_ZIP_SSIZE_MAX
Maximum compressed page shift size.
Definition: page0types.h:167
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:252
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:68
constexpr uint32_t PAGE_N_HEAP
number of records in the heap, bit 15=flag: new-style compact page format
Definition: page0types.h:61
constexpr uint32_t PAGE_DIRECTION
last insert direction: PAGE_LEFT, ...
Definition: page0types.h:70
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:63
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:84
constexpr uint32_t PAGE_HEAP_TOP
pointer to record heap top
Definition: page0types.h:59
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:80
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:98
constexpr uint32_t PAGE_BTR_IBUF_FREE_LIST
Definition: page0types.h:91
constexpr uint32_t PAGE_N_DIR_SLOTS
number of slots in page directory
Definition: page0types.h:57
byte page_zip_t
Compressed index page.
Definition: page0types.h:154
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:137
#define page_t
Eliminates a name collision on HP-UX.
Definition: page0types.h:150
page_zip_stat_per_index_t page_zip_stat_per_index
Statistics on compression, indexed by dict_index_t::id.
Definition: page0zip.cc:83
Data structure for an index.
Definition: dict0mem.h:1046
Index page cursor.
Definition: page0cur.h:311
Compressed page descriptor.
Definition: page0types.h:200
uint16_t m_start
Start offset of modification log.
Definition: page0types.h:206
uint16_t n_blobs
Number of externally stored columns on the page; the maximum is 744 on a 16 KiB page.
Definition: page0types.h:216
uint8_t ssize
0 or compressed page shift size; the size in bytes is: (UNIV_ZIP_SIZE_MIN * >> 1) << ssize.
Definition: page0types.h:223
bool m_nonempty
true if the modification log is not empty.
Definition: page0types.h:219
uint16_t m_end
End offset of modification log.
Definition: page0types.h:212
page_zip_t * data
Compressed page data.
Definition: page0types.h:202
bool m_external
Allocated externally, not from the buffer pool.
Definition: page0types.h:208
Compression statistics for a given page size.
Definition: page0types.h:227
ulint compressed_ok
Number of successful page compressions.
Definition: page0types.h:231
ulint decompressed
Number of page decompressions.
Definition: page0types.h:233
std::chrono::microseconds decompress_time
Duration of page decompressions.
Definition: page0types.h:237
ulint compressed
Number of page compressions.
Definition: page0types.h:229
std::chrono::microseconds compress_time
Duration of page compressions.
Definition: page0types.h:235
page_zip_stat_t()
Definition: page0types.h:238
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:298
unsigned long int ulint
Definition: univ.i:406
constexpr uint32_t UNIV_ZIP_SIZE_SHIFT_MAX
log2 of largest compressed page size (1<<14 == 16384 bytes).
Definition: univ.i:306
Dynamic memory allocation routines and custom allocators specifically crafted to support memory instr...