64 std::ostream &
print(std::ostream &out)
const;
77 return (obj.
print(out));
139 const byte zero[
SIZE] = {0x00};
191 entry.move_version_base_node(*
this);
374 std::ostream &
print(std::ostream &out)
const;
457 return (obj.
print(out));
uint32_t page_no_t
Page number.
Definition: api0api.h:49
static buf_frame_t * buf_block_get_frame(const buf_block_t *block)
Gets a pointer to the memory frame of a block.
page_id_t id
Page id.
Definition: buf0buf.h:1319
page_no_t page_no() const
Retrieve the page number.
Definition: buf0types.h:243
Fido Client Authentication nullptr
Definition: fido_client_plugin.cc:222
fil_addr_t fil_addr_null
The null file address.
Definition: fil0fil.cc:326
constexpr page_no_t FIL_NULL
'null' (undefined) page offset in the context of file spaces
Definition: fil0fil.h:1131
constexpr size_t FIL_ADDR_SIZE
Address size is 6 bytes.
Definition: fil0types.h:128
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 ulint flst_get_len(const flst_base_node_t *base)
Get the length of a list.
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:342
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:256
@ 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
std::list< index_entry_mem_t > List_iem_t
List of index entry memory (iem) objects.
Definition: lob0index.h:68
std::map< page_no_t, buf_block_t * > BlockCache
Definition: lob0index.h:37
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:1690
buf_page_t page
page information; this must be the first field, so that buf_pool->page_hash can point to buf_page_t o...
Definition: buf0buf.h:1696
Data structure for an index.
Definition: dict0mem.h:1046
File space address.
Definition: fil0fil.h:1148
uint32_t boffset
Byte offset within the page.
Definition: fil0fil.h:1180
page_no_t page
Page number within a space.
Definition: fil0fil.h:1177
bool is_equal(const fil_addr_t &rhs) const
Compare to instances.
Definition: fil0fil.h:1160
bool is_null() const
Check if the file address is null.
Definition: fil0fil.h:1166
In-memory representation of flst_base_node_t.
Definition: fut0lst.h:148
The first page of an uncompressed LOB.
Definition: lob0first.h:43
An in-memory copy of an index_entry_t data.
Definition: lob0index.h:41
trx_id_t m_trx_id_modifier
Definition: lob0index.h:47
undo_no_t m_undo_no
Definition: lob0index.h:48
undo_no_t m_undo_no_modifier
Definition: lob0index.h:49
flst_bnode_t m_versions
Definition: lob0index.h:45
fil_addr_t m_next
Definition: lob0index.h:44
fil_addr_t m_prev
Definition: lob0index.h:43
bool is_null()
Definition: lob0index.h:57
trx_id_t m_trx_id
Definition: lob0index.h:46
index_entry_mem_t()
Definition: lob0index.h:53
fil_addr_t m_self
Definition: lob0index.h:42
void reset()
Definition: lob0index.cc:208
page_no_t get_page_no() const
Definition: lob0index.h:59
std::ostream & print(std::ostream &out) const
Print this object into the given output stream.
Definition: lob0index.cc:224
ulint m_data_len
Definition: lob0index.h:51
page_no_t m_page_no
Definition: lob0index.h:50
An index entry pointing to an LOB page.
Definition: lob0index.h:81
void free_data_page(const page_no_t first_page_no)
Free the data page pointed to by this index entry.
Definition: lob0index.cc:235
void reset(flst_node_t *node)
Definition: lob0index.h:136
void insert_after(flst_base_node_t *base, index_entry_t &entry)
Definition: lob0index.h:392
ulint get_data_len() const
Definition: lob0index.h:369
void set_versions_null()
The versions base node is set to NULL.
Definition: lob0index.h:158
static const ulint OFFSET_PAGE_NO
Definition: lob0index.h:99
bool is_same(const index_entry_t &that)
Definition: lob0index.h:376
byte * get_lob_version_ptr() const
Definition: lob0index.h:431
void set_next_null()
Definition: lob0index.h:355
fil_addr_t get_self() const
Get the location of the current index entry.
Definition: lob0index.cc:144
void read(index_entry_mem_t &entry_mem) const
Definition: lob0index.cc:156
fil_addr_t get_next() const
Definition: lob0index.h:262
buf_block_t * m_block
Definition: lob0index.h:449
page_no_t get_page_no() const
Definition: lob0index.h:359
uint32_t get_lob_version() const
Definition: lob0index.h:250
index_entry_t(flst_node_t *node, mtr_t *mtr)
Definition: lob0index.h:113
static const ulint OFFSET_PREV
Index entry offsets within node.
Definition: lob0index.h:83
void push_back(flst_base_node_t *bnode)
Add this node as the last node in the given list.
Definition: lob0index.h:225
mtr_t * m_mtr
Definition: lob0index.h:447
void reset(fil_addr_t &addr)
Definition: lob0index.h:124
void set_prev_null()
Definition: lob0index.h:351
static const ulint OFFSET_NEXT
Definition: lob0index.h:84
static const ulint OFFSET_LOB_VERSION
The LOB version number.
Definition: lob0index.h:103
byte * get_node() const
Definition: lob0index.h:443
byte * get_trx_undo_no_ptr() const
Definition: lob0index.h:429
flst_bnode_t get_versions_mem() const
Get the base node of the list of versions.
Definition: lob0index.h:230
fil_addr_t make_old_version_current(dict_index_t *index, first_page_t &first_page)
The current index entry points to a latest LOB page.
Definition: lob0index.cc:47
void set_trx_id(trx_id_t id)
Definition: lob0index.h:312
byte * get_trx_undo_no_modifier_ptr() const
Definition: lob0index.h:433
void set_old_version(index_entry_t &entry)
Definition: lob0index.h:186
byte * get_trxid_modifier_ptr() const
Definition: lob0index.h:425
void add_version(index_entry_t &entry) const
Definition: lob0index.h:215
void set_trx_id_modifier(trx_id_t id)
Definition: lob0index.h:318
void set_trx_undo_no_modifier(undo_no_t undo_no)
Definition: lob0index.h:338
buf_block_t * get_block() const
Definition: lob0index.h:132
void set_trx_undo_no(undo_no_t undo_no)
Definition: lob0index.h:326
void move_version_base_node(index_entry_t &to_entry)
Move the version base node from current entry to the given entry.
Definition: lob0index.cc:39
void init()
Initialize the object fully.
Definition: lob0index.h:144
void purge(dict_index_t *index)
Purge the current index entry.
Definition: lob0index.cc:83
byte * get_pageno_ptr() const
Definition: lob0index.h:437
void set_trx_id_modifier_no_redo(trx_id_t id)
Write the modifier trx identifier to the index entry.
Definition: lob0index.h:307
buf_block_t * load_s(const fil_addr_t &addr)
Load the index entry available in the given file address.
Definition: lob0index.cc:195
fil_addr_t get_prev() const
Get the previous index entry.
Definition: lob0index.h:290
static const ulint OFFSET_VERSIONS
Points to base node of the list of versions.
Definition: lob0index.h:88
void set_page_no(page_no_t num)
Definition: lob0index.h:345
void remove(flst_base_node_t *bnode)
Definition: lob0index.h:400
flst_base_node_t * get_versions_list() const
Definition: lob0index.h:221
void set_trx_id_no_redo(trx_id_t id)
Write the trx identifier to the index entry.
Definition: lob0index.h:298
index_entry_t(flst_node_t *node)
Constructor.
Definition: lob0index.h:110
index_entry_t(flst_node_t *node, mtr_t *mtr, dict_index_t *index)
Definition: lob0index.h:116
static const ulint OFFSET_TRX_UNDO_NO_MODIFIER
The undo number of the modifier trx.
Definition: lob0index.h:98
bool can_rollback(trx_id_t trxid, undo_no_t undo_no)
Determine if the current index entry be rolled back.
Definition: lob0index.h:169
static const ulint OFFSET_TRXID_MODIFIER
The modifier trx id.
Definition: lob0index.h:94
void insert_before(flst_base_node_t *base, index_entry_t &entry)
Definition: lob0index.h:396
static const ulint OFFSET_TRX_UNDO_NO
Definition: lob0index.h:95
buf_block_t * load_x(const fil_addr_t &addr)
Load the index entry available in the given file address.
Definition: lob0index.cc:178
undo_no_t get_trx_undo_no_modifier() const
Get the undo number of the modifier trx.
Definition: lob0index.h:257
const dict_index_t * m_index
Definition: lob0index.h:448
fil_addr_t purge_version(dict_index_t *index, flst_base_node_t *lst, flst_base_node_t *free_list)
Purge the current entry.
Definition: lob0index.cc:111
buf_block_t * next()
Make the current index entry object to point to the next index entry object.
Definition: lob0index.h:271
static const ulint SIZE
Total length of an index node.
Definition: lob0index.h:106
undo_no_t get_trx_undo_no() const
Definition: lob0index.h:245
static const ulint OFFSET_DATA_LEN
Definition: lob0index.h:100
byte * m_node
Definition: lob0index.h:446
static const ulint OFFSET_TRXID
The creator trx id.
Definition: lob0index.h:91
void set_lob_version(uint32_t version)
Set the LOB version of this entry.
Definition: lob0index.h:333
byte * get_node_ptr() const
Definition: lob0index.h:441
bool is_null() const
Definition: lob0index.h:138
byte * get_versions_ptr() const
Definition: lob0index.h:421
byte * get_datalen_ptr() const
Definition: lob0index.h:439
index_entry_t(mtr_t *mtr, const dict_index_t *index)
Definition: lob0index.h:119
std::ostream & print(std::ostream &out) const
Definition: lob0index.cc:130
trx_id_t get_trx_id() const
Definition: lob0index.h:235
bool can_be_purged(trx_id_t trxid, undo_no_t undo_no)
Determine if the current index entry be purged.
Definition: lob0index.h:178
trx_id_t get_trx_id_modifier() const
Definition: lob0index.h:240
byte * get_trxid_ptr() const
Definition: lob0index.h:423
void set_data_len(ulint len)
Definition: lob0index.h:364
Mini-transaction handle and buffer.
Definition: mtr0mtr.h:177
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
Version control for database, common definitions, and include files.
unsigned long int ulint
Definition: univ.i:406
#define ut_ad(EXPR)
Debug assertion.
Definition: ut0dbg.h:69