60 std::ostream &
print(std::ostream &out)
const;
83 return (obj.
print(out));
465 std::ostream &
print(std::ostream &out)
const;
466 std::ostream &
print_pages(std::ostream &out)
const;
539 return (obj.
print(out));
uint32_t space_id_t
Tablespace identifier.
Definition: api0api.h:47
uint32_t page_no_t
Page number.
Definition: api0api.h:45
Kerberos Client Authentication nullptr
Definition: auth_kerberos_client_plugin.cc:251
buf_block_t * buf_page_get(const page_id_t &id, const page_size_t &size, ulint latch, ut::Location location, mtr_t *mtr)
NOTE! The following macros should be used instead of buf_page_get_gen, to improve debugging.
Definition: buf0buf.h:441
Page identifier.
Definition: buf0types.h:207
Page size descriptor.
Definition: page0size.h:50
static const page_size_t dict_table_page_size(const dict_table_t *table)
Get the table page size.
static space_id_t dict_index_get_space(const dict_index_t *index)
Gets the space id of the root of the index tree.
fil_addr_t fil_addr_null
The null file address.
Definition: fil0fil.cc:326
The low-level file system.
constexpr page_no_t FIL_NULL
'null' (undefined) page offset in the context of file spaces
Definition: fil0fil.h:1159
constexpr size_t FIL_ADDR_SIZE
Address size is 6 bytes.
Definition: fil0types.h:128
static byte * fut_get_ptr(space_id_t space, const page_size_t &page_size, fil_addr_t addr, rw_lock_type_t rw_latch, mtr_t *mtr, buf_block_t **ptr_block=nullptr)
Gets a pointer to a file address and latches the page.
void flst_add_last(flst_base_node_t *base, flst_node_t *node, mtr_t *mtr)
Adds a node as the last node in a list.
Definition: fut0lst.cc:90
void flst_remove(flst_base_node_t *base, flst_node_t *node2, mtr_t *mtr)
Removes a node.
Definition: fut0lst.cc:287
void flst_add_first(flst_base_node_t *base, flst_node_t *node, mtr_t *mtr)
Adds a node as the first node in a list.
Definition: fut0lst.cc:133
void flst_insert_after(flst_base_node_t *base, flst_node_t *node1, flst_node_t *node2, mtr_t *mtr)
Inserts a node after another in a list.
Definition: fut0lst.cc:172
void flst_insert_before(flst_base_node_t *base, flst_node_t *node2, flst_node_t *node3, mtr_t *mtr)
Inserts a node before another in a list.
Definition: fut0lst.cc:228
File-based list utilities.
constexpr ulint FLST_BASE_NODE_SIZE
Definition: fut0lst.h:50
static void flst_write_addr(fil_faddr_t *faddr, fil_addr_t addr, mtr_t *mtr)
Writes a file address.
byte flst_base_node_t
Definition: fut0lst.h:46
static fil_addr_t flst_read_addr(const fil_faddr_t *faddr, mtr_t *mtr)
Reads a file address.
static void flst_init(flst_base_node_t *base, mtr_t *mtr)
Initializes a list base node.
byte flst_node_t
Definition: fut0lst.h:47
static uint16_t mach_read_from_2(const byte *b)
The following function is used to fetch data from 2 consecutive bytes.
static uint32_t mach_read_from_4(const byte *b)
The following function is used to fetch data from 4 consecutive bytes.
static void mach_write_to_6(byte *b, uint64_t id)
The following function is used to store data in 6 consecutive bytes.
static uint64_t mach_read_from_6(const byte *b)
The following function is used to fetch data from 6 consecutive bytes.
void mlog_log_string(byte *ptr, ulint len, mtr_t *mtr)
Logs a write of a string to a file page buffered in the buffer pool.
Definition: mtr0log.cc:347
void mlog_write_ulint(byte *ptr, ulint val, mlog_id_t type, mtr_t *mtr)
Writes 1, 2 or 4 bytes to a file page.
Definition: mtr0log.cc:258
#define mtr_commit(m)
Commit a mini-transaction.
Definition: mtr0mtr.h:59
@ MLOG_4BYTES
4 bytes ...
Definition: mtr0types.h:76
@ MLOG_2BYTES
2 bytes ...
Definition: mtr0types.h:73
Provides the large objects (LOB) module.
Definition: lob0del.h:32
ulint frag_id_t
Definition: lob0impl.h:489
const ulint FRAG_ID_NULL
Definition: lob0impl.h:490
std::ostream & operator<<(std::ostream &out, const plist_node_t &obj)
Definition: lob0impl.h:239
required uint64 version
Definition: replication_group_member_actions.proto:41
void free_list(I_List< i_string > *list)
Definition: sql_list.cc:31
Definition: completion_hash.h:35
The buffer control block structure.
Definition: buf0buf.h:1747
page_no_t get_page_no() const
Get the page number of the current buffer block.
Definition: buf0buf.h:1935
Data structure for an index.
Definition: dict0mem.h:1046
dict_table_t * table
back pointer to table
Definition: dict0mem.h:1060
File space address.
Definition: fil0fil.h:1176
bool is_equal(const fil_addr_t &rhs) const
Compare to instances.
Definition: fil0fil.h:1188
In-memory representation of flst_base_node_t.
Definition: fut0lst.h:148
void reset()
Definition: fut0lst.h:166
The first page of an zlob.
Definition: zlob0first.h:38
In-memory copy of the information from z_index_entry_t.
Definition: zlob0index.h:37
frag_id_t m_z_frag_id
Definition: zlob0index.h:52
undo_no_t m_trx_undo_no_modifier
Definition: zlob0index.h:50
std::ostream & print(std::ostream &out) const
Definition: zlob0index.cc:238
undo_no_t m_trx_undo_no
Definition: zlob0index.h:49
trx_id_t m_trx_id
Definition: zlob0index.h:47
fil_addr_t m_next
Definition: zlob0index.h:45
fil_addr_t m_prev
Definition: zlob0index.h:44
ulint m_z_data_len
Compressed data length.
Definition: zlob0index.h:58
z_index_entry_mem_t()
Definition: zlob0index.h:38
flst_bnode_t m_versions
Definition: zlob0index.h:46
bool is_null()
Definition: zlob0index.h:78
page_no_t m_z_page_no
Definition: zlob0index.h:51
trx_id_t m_trx_id_modifier
Definition: zlob0index.h:48
ulint m_data_len
Uncompressed data length.
Definition: zlob0index.h:55
void reset()
Initialize all the members.
Definition: zlob0index.h:63
fil_addr_t m_self
The location of this index entry node.
Definition: zlob0index.h:42
An index entry pointing to one zlib stream.
Definition: zlob0index.h:87
z_index_entry_t(flst_node_t *node, mtr_t *mtr)
Constructor.
Definition: zlob0index.h:132
size_t free_data_pages(mtr_t *mtr)
Free the data pages pointed to by this index entry.
Definition: zlob0index.cc:250
z_index_entry_t(flst_node_t *node, mtr_t *mtr, dict_index_t *index)
Constructor.
Definition: zlob0index.h:135
uint32_t get_lob_version() const
Get the LOB version.
Definition: zlob0index.h:435
fil_addr_t get_next() const
Get the location of next index entry.
Definition: zlob0index.h:276
static const ulint OFFSET_TRX_UNDO_NO_MODIFIER
Offset within index entry pointing to modifier trx undo no.
Definition: zlob0index.h:108
buf_block_t * load_s()
Load the page (in shared mode) whose number was cached.
Definition: zlob0index.h:470
static const ulint OFFSET_TRXID_MODIFIER
The modifier trx id.
Definition: zlob0index.h:102
void set_trx_id_modifier_no_redo(trx_id_t id)
Set the modifier trxid to the given value, without generating redo log records.
Definition: zlob0index.h:358
static const ulint OFFSET_PREV
Offset with index entry pointing to the prev index entry.
Definition: zlob0index.h:89
void move_version_base_node(z_index_entry_t &entry)
Move the version base node from current entry to the given entry.
Definition: zlob0index.cc:209
page_no_t get_z_page_no() const
Definition: zlob0index.h:379
fil_addr_t make_old_version_current(dict_index_t *index, z_first_page_t &first)
The current index entry points to a latest LOB page.
Definition: zlob0index.cc:55
static const ulint OFFSET_NEXT
Offset with index entry pointing to the next index entry.
Definition: zlob0index.h:92
static const ulint OFFSET_Z_PAGE_NO
Offset within index entry pointing to page number where zlib stream starts.
Definition: zlob0index.h:112
mtr_t * m_mtr
A mini-transaction.
Definition: zlob0index.h:523
void set_zdata_len(ulint len)
Set the compressed data length in bytes.
Definition: zlob0index.h:429
static const ulint OFFSET_DATA_LEN
Offset within index entry pointing to uncompressed data len (bytes).
Definition: zlob0index.h:119
ulint get_data_len() const
Get the uncompressed data length in bytes.
Definition: zlob0index.h:411
static const ulint OFFSET_TRX_UNDO_NO
Offset within index entry pointing to trx undo no.
Definition: zlob0index.h:105
std::ostream & print(std::ostream &out) const
Definition: zlob0index.cc:142
trx_id_t get_trx_id() const
Definition: zlob0index.h:304
void reset(flst_node_t *node)
Point to another index entry.
Definition: zlob0index.h:169
z_index_entry_t(flst_node_t *node)
Constructor.
Definition: zlob0index.h:150
void push_front(flst_base_node_t *bnode)
Add this node as the last node in the given list.
Definition: zlob0index.h:259
std::ostream & print_pages(std::ostream &out) const
Definition: zlob0index.cc:160
ulint get_zdata_len() const
Get the compressed data length in bytes.
Definition: zlob0index.h:423
void set_z_page_no(page_no_t page_no)
Set the page number pointed to by this index entry to given value.
Definition: zlob0index.h:396
trx_id_t get_trx_id_modifier() const
Definition: zlob0index.h:308
flst_bnode_t get_versions_mem() const
Get the base node of the list of versions.
Definition: zlob0index.h:298
z_index_entry_t()
Default constructor.
Definition: zlob0index.h:158
void insert_before(flst_base_node_t *base, z_index_entry_t &entry)
Definition: zlob0index.h:243
static const ulint OFFSET_VERSIONS
Offset within index entry pointing to base node of list of versions.
Definition: zlob0index.h:96
void set_prev_null()
Set the previous index entry as null.
Definition: zlob0index.h:265
void set_lob_version(ulint version)
Set the LOB version .
Definition: zlob0index.h:441
undo_no_t get_trx_undo_no_modifier() const
Get the undo number of the modifier transaction.
Definition: zlob0index.h:323
static const ulint OFFSET_Z_FRAG_ID
Offset within index entry pointing to location of zlib stream.
Definition: zlob0index.h:115
bool can_rollback(trx_id_t trxid, undo_no_t undo_no)
Determine if the current index entry be rolled back.
Definition: zlob0index.h:196
void remove(flst_base_node_t *bnode)
Remove this node from the given list.
Definition: zlob0index.h:228
void set_z_page_no_null(mtr_t *mtr)
Set the page number pointed to by this index entry to FIL_NULL.
Definition: zlob0index.h:385
void reset(const z_index_entry_t &entry)
Point to another index entry.
Definition: zlob0index.h:173
fil_addr_t get_self() const
Get the location of the current index entry.
Definition: zlob0index.cc:186
static const ulint OFFSET_ZDATA_LEN
Offset within index entry pointing to compressed data len (bytes).
Definition: zlob0index.h:123
flst_base_node_t * get_versions_list() const
Get the base node of the list of versions.
Definition: zlob0index.h:293
static const ulint OFFSET_LOB_VERSION
LOB version.
Definition: zlob0index.h:126
void init()
Initialize an index entry to some sane value.
Definition: zlob0index.h:176
void set_trx_id_no_redo(trx_id_t id)
Set the trx identifier to given value, without generating redo log records.
Definition: zlob0index.h:331
fil_addr_t purge_version(dict_index_t *index, z_first_page_t &first, flst_base_node_t *lst, flst_base_node_t *free_list)
Purge one index entry.
Definition: zlob0index.cc:35
void push_back(flst_base_node_t *bnode)
Add this node as the last node in the given list.
Definition: zlob0index.h:251
page_no_t get_z_frag_id() const
Definition: zlob0index.h:401
void read(z_index_entry_mem_t &entry_mem) const
Read the given LOB index entry.
Definition: zlob0index.cc:197
void set_index(dict_index_t *index)
Definition: zlob0index.h:165
undo_no_t get_trx_undo_no() const
Get the undo number of the creator transaction.
Definition: zlob0index.h:315
void set_trx_undo_no(undo_no_t undo_no)
Set the undo number of the creator trx.
Definition: zlob0index.h:365
buf_block_t * m_block
The buffer block in which this entry exists.
Definition: zlob0index.h:530
void insert_after(flst_base_node_t *base, z_index_entry_t &entry)
Insert the given index entry after the current index entry.
Definition: zlob0index.h:237
void set_next_null()
Set the next index entry as null.
Definition: zlob0index.h:281
flst_node_t * get_node()
Definition: zlob0index.h:462
bool can_be_purged(trx_id_t trxid, undo_no_t undo_no)
Determine if the current index entry be purged.
Definition: zlob0index.h:205
void set_trx_id(trx_id_t id)
Set the trx identifier to given value.
Definition: zlob0index.h:338
page_no_t m_page_no
The page number in which this entry is available.
Definition: zlob0index.h:535
void set_versions_null()
Set the versions list as null.
Definition: zlob0index.h:287
z_index_entry_t(mtr_t *mtr, dict_index_t *index)
Constructor.
Definition: zlob0index.h:141
void read_and_commit(z_index_entry_mem_t &entry_mem)
Read the given LOB index entry and then commit the mtr.
Definition: zlob0index.h:504
void set_data_len(ulint len)
Set the uncompressed data length in bytes.
Definition: zlob0index.h:417
static const ulint SIZE
Total size of one index entry.
Definition: zlob0index.h:129
void set_trx_id_modifier(trx_id_t id)
Set the modifier trxid to the given value.
Definition: zlob0index.h:347
dict_index_t * m_index
The index containing the LOB.
Definition: zlob0index.h:526
void set_z_frag_id(frag_id_t id)
Definition: zlob0index.h:405
static const ulint OFFSET_TRXID
Offset within index entry pointing to creator trxid.
Definition: zlob0index.h:99
void set_old_version(z_index_entry_t &entry)
Definition: zlob0index.cc:231
void load_x(fil_addr_t &addr)
Load the given file address in x mode.
Definition: zlob0index.h:491
flst_node_t * m_node
The file list node in a db page.
Definition: zlob0index.h:520
void set_trx_undo_no_modifier(undo_no_t undo_no)
Set the undo number of the modifier trx.
Definition: zlob0index.h:373
void purge(dict_index_t *index, z_first_page_t &first)
Purge the current index entry.
Definition: zlob0index.cc:89
void load_s(fil_addr_t &addr)
Load the given file address in s mode.
Definition: zlob0index.h:482
fil_addr_t get_prev() const
Get the location of previous index entry.
Definition: zlob0index.h:270
bool is_null() const
Definition: zlob0index.h:463
Mini-transaction handle and buffer.
Definition: mtr0mtr.h:177
@ RW_X_LATCH
Definition: sync0rw.h:99
@ RW_S_LATCH
Definition: sync0rw.h:98
ib_id_t undo_no_t
Undo number.
Definition: trx0types.h:142
ib_id_t trx_id_t
Transaction identifier (DB_TRX_ID, DATA_TRX_ID)
Definition: trx0types.h:138
unsigned long int ulint
Definition: univ.i:406
#define UT_LOCATION_HERE
Definition: ut0core.h:73
#define ut_ad(EXPR)
Debug assertion.
Definition: ut0dbg.h:105