![]() |
MySQL 8.4.4
Source Code Documentation
|
Compressed page interface. More...
Functions | |
static void | page_zip_set_size (page_zip_des_t *page_zip, ulint size) |
Set the size of a compressed page in bytes. More... | |
static bool | page_zip_rec_needs_ext (ulint rec_size, ulint comp, ulint n_fields, const page_size_t &page_size) |
Determine if a record is so big that it needs to be stored externally. More... | |
static ulint | page_zip_get_trailer_len (const page_zip_des_t *page_zip, bool is_clust) |
Determine if the length of the page trailer. More... | |
static lint | page_zip_max_ins_size (const page_zip_des_t *page_zip, bool is_clust) |
static bool | page_zip_available (const page_zip_des_t *page_zip, bool is_clust, ulint length, ulint create) |
static void | page_zip_des_init (page_zip_des_t *page_zip) |
Initialize a compressed page descriptor. More... | |
void | page_zip_write_header_log (const byte *data, ulint length, mtr_t *mtr) |
Write a log record of writing to the uncompressed header portion of a page. More... | |
static void | page_zip_write_header (page_zip_des_t *page_zip, const byte *str, ulint length, mtr_t *mtr) |
Write data to the uncompressed header portion of a page. More... | |
static void | page_zip_compress_write_log_no_data (ulint level, const page_t *page, dict_index_t *index, mtr_t *mtr) |
Write a log record of compressing an index page without the data on the page. More... | |
static const byte * | page_zip_parse_compress_no_data (const byte *ptr, const byte *end_ptr, page_t *page, page_zip_des_t *page_zip, dict_index_t *index) |
Parses a log record of compressing an index page without the data. More... | |
static void | page_zip_reset_stat_per_index () |
Reset the counters used for filling INFORMATION_SCHEMA.innodb_cmp_per_index. More... | |
static byte * | page_zip_dir_find_low (byte *slot, byte *end, ulint offset) |
Find the slot of the given record in the dense page directory. More... | |
static ulint | page_zip_dir_user_size (const page_zip_des_t *page_zip) |
Gets the size of the compressed page trailer (the dense page directory), only including user records (excluding the free list). More... | |
static byte * | page_zip_dir_find_free (page_zip_des_t *page_zip, ulint offset) |
Find the slot of the given free record in the dense page directory. More... | |
static ulint | page_zip_dir_start_offs (const page_zip_des_t *page_zip, ulint n_dense) |
Gets an offset to the compressed page trailer (the dense page directory), including deleted records (the free list). More... | |
Compressed page interface.
Created June 2005 by Marko Makela
|
inlinestatic |
|
inlinestatic |
Write a log record of compressing an index page without the data on the page.
level | in: compression level |
page | in: page that is compressed |
index | in: index |
mtr | in: mtr |
|
inlinestatic |
Initialize a compressed page descriptor.
page_zip | in/out: compressed page descriptor |
|
inlinestatic |
Find the slot of the given free record in the dense page directory.
page_zip | in: compressed page |
offset | in: offset of user record |
Find the slot of the given record in the dense page directory.
slot | in: start of records |
end | in: end of records |
offset | in: offset of user record |
|
inlinestatic |
Gets an offset to the compressed page trailer (the dense page directory), including deleted records (the free list).
page_zip | in: compressed page |
n_dense | in: directory size |
|
inlinestatic |
Gets the size of the compressed page trailer (the dense page directory), only including user records (excluding the free list).
page_zip | in: compressed page |
|
inlinestatic |
Determine if the length of the page trailer.
page_zip | in: compressed page |
is_clust | in: true if clustered index |
|
inlinestatic |
|
inlinestatic |
Parses a log record of compressing an index page without the data.
ptr | in: buffer |
end_ptr | in: buffer end |
page | in: uncompressed page |
page_zip | out: compressed page |
index | in: index |
|
inlinestatic |
Determine if a record is so big that it needs to be stored externally.
[in] | rec_size | length of the record in bytes |
[in] | comp | nonzero=compact format |
[in] | n_fields | number of fields in the record; ignored if tablespace is not compressed |
[in] | page_size | page size |
|
inlinestatic |
Reset the counters used for filling INFORMATION_SCHEMA.innodb_cmp_per_index.
|
inlinestatic |
Set the size of a compressed page in bytes.
page_zip | in/out: compressed page |
size | in: size in bytes |
|
inlinestatic |
Write data to the uncompressed header portion of a page.
The data must already have been written to the uncompressed page.
[in,out] | page_zip | Compressed page |
[in] | str | Address on the uncompressed page |
[in] | length | Length of the data |
[in] | mtr | Mini-transaction, or NULL |