205    ut_ad(mtr != 
nullptr);
 
  213    ut_ad(mtr != 
nullptr);
 
  266    uint32_t offset = 
static_cast<uint32_t
>(
begin_data());
 
  351    ut_ad(mtr != 
nullptr);
 
  454    return (!(
flags & 0x01));
 
  506    for (
ulint i = 0; i < 
n; ++i) {
 
  551  std::ostream &
print(std::ostream &out) 
const;
 
  610    static const uint32_t FREQ = 50;
 
  611    static std::atomic<uint32_t> 
n{0};
 
  614    if (++
n % FREQ == 0) {
 
  658  return (obj.
print(out));
 
uint32_t space_id_t
Tablespace identifier.
Definition: api0api.h:48
 
uint32_t page_no_t
Page number.
Definition: api0api.h:46
 
Kerberos Client Authentication nullptr
Definition: auth_kerberos_client_plugin.cc:247
 
static buf_frame_t * buf_block_get_frame(const buf_block_t *block)
Gets a pointer to the memory frame of a block.
 
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:452
 
page_id_t id
Page id.
Definition: buf0buf.h:1387
 
Page identifier.
Definition: buf0types.h:207
 
page_no_t page_no() const
Retrieve the page number.
Definition: buf0types.h:243
 
Page size descriptor.
Definition: page0size.h:50
 
size_t physical() const
Retrieve the physical page size (on-disk).
Definition: page0size.h:121
 
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.
 
uint16_t page_type_t
Definition: fil0fil.h:1223
 
constexpr page_no_t FIL_NULL
'null' (undefined) page offset in the context of file spaces
Definition: fil0fil.h:1161
 
constexpr page_type_t FIL_PAGE_TYPE_UNKNOWN
In old tablespaces, garbage in FIL_PAGE_TYPE is replaced with this value when flushing pages.
Definition: fil0fil.h:1277
 
constexpr page_type_t FIL_PAGE_TYPE_ZLOB_FIRST
The first page of a compressed LOB.
Definition: fil0fil.h:1313
 
The low-level file system page header & trailer offsets.
 
constexpr uint32_t FIL_PAGE_TYPE
file page type: FIL_PAGE_INDEX,..., 2 bytes.
Definition: fil0types.h:76
 
constexpr uint32_t FIL_PAGE_DATA
start of the data on the page
Definition: fil0types.h:111
 
constexpr uint32_t FIL_PAGE_SPACE_ID
alias for space id
Definition: fil0types.h:108
 
constexpr uint32_t FIL_PAGE_NEXT
if there is a 'natural' successor of the page, its offset.
Definition: fil0types.h:61
 
constexpr uint32_t FIL_PAGE_PREV
if there is a 'natural' predecessor of the page, its offset.
Definition: fil0types.h:51
 
constexpr uint32_t FIL_PAGE_DATA_END
size of the page trailer
Definition: fil0types.h:119
 
File-based list utilities.
 
constexpr ulint FLST_BASE_NODE_SIZE
Definition: fut0lst.h:50
 
byte flst_base_node_t
Definition: fut0lst.h:46
 
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 int flags[50]
Definition: hp_test1.cc:40
 
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 uint8_t mach_read_from_1(const byte *b)
The following function is used to fetch data from one byte.
 
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
 
#define mtr_memo_contains(m, o, t)
Check if memo contains the given item.
Definition: mtr0mtr.h:107
 
#define mtr_start(m)
Start a mini-transaction.
Definition: mtr0mtr.h:50
 
#define mtr_read_ulint(p, t, m)
Read 1 - 4 bytes from a file page buffered in the buffer pool.
Definition: mtr0mtr.h:87
 
@ MLOG_4BYTES
4 bytes ...
Definition: mtr0types.h:76
 
@ MLOG_1BYTE
one byte is written
Definition: mtr0types.h:70
 
@ MLOG_2BYTES
2 bytes ...
Definition: mtr0types.h:73
 
@ MTR_MEMO_PAGE_X_FIX
Definition: mtr0types.h:292
 
Used for bulk load of data.
Definition: fut0lst.cc:411
 
byte * fut_get_ptr(fil_addr_t addr, std::vector< buf_block_t * > &blocks)
Gets a pointer to a file address.
Definition: fut0lst.cc:499
 
bool index(const std::string &value, const String &search_for, uint32_t *idx)
Definition: contains.h:76
 
Provides the large objects (LOB) module.
Definition: lob0bulk.h:44
 
ulint frag_id_t
Definition: lob0impl.h:489
 
std::ostream & operator<<(std::ostream &out, const plist_node_t &obj)
Definition: lob0impl.h:239
 
Definition: completion_hash.h:35
 
The buffer control block structure.
Definition: buf0buf.h:1764
 
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:1770
 
page_no_t get_prev_page_no() const
Get the prev page number of the current buffer block.
Definition: buf0buf.h:1957
 
Data structure for an index.
Definition: dict0mem.h:1041
 
dict_table_t * table
back pointer to table
Definition: dict0mem.h:1055
 
page_size_t get_page_size() const
Get the page size of the tablespace to which this index belongs.
Definition: dict0mem.cc:917
 
File space address.
Definition: fil0fil.h:1178
 
The first page of an zlob.
Definition: zlob0first.h:38
 
std::ostream & print_frag_entries(std::ostream &out) const
Print the index entries.
Definition: zlob0first.cc:145
 
void restart_mtr(mtr_t *mtr)
Restart the given mtr.
Definition: zlob0first.h:631
 
void set_page_type_unknown()
Set the page type to FIL_PAGE_TYPE_UNKNOWN.
Definition: zlob0first.h:396
 
void init_lob_version()
Initialize the LOB version to 1.
Definition: zlob0first.h:430
 
uint32_t incr_lob_version()
Increment LOB version by 1.
Definition: zlob0first.cc:456
 
void set_data_len(ulint len)
Definition: zlob0first.h:408
 
void set_frag_node_page_no(page_no_t page_no)
All the frag node pages (.
Definition: zlob0first.h:340
 
ulint get_n_frag_entries() const
Given the page size, what is the number of frag entries the first page can contain.
Definition: zlob0first.cc:65
 
static const ulint OFFSET_INDEX_PAGE_NO
The next index page.
Definition: zlob0first.h:62
 
buf_block_t * get_block() const
Get the buffer block of the first page of LOB.
Definition: zlob0first.h:623
 
size_t free_all_frag_pages()
Free all the fragment pages.
Definition: zlob0first.cc:646
 
static const ulint OFFSET_LAST_UNDO_NO
The last transaction that modified this LOB.
Definition: zlob0first.h:53
 
z_first_page_t(buf_block_t *block)
Definition: zlob0first.h:137
 
page_no_t get_index_page_no() const
All the index pages are singly linked with each other, and the first page contains the link to one in...
Definition: zlob0first.h:290
 
void init_frag_entries()
Definition: zlob0first.h:503
 
size_t free_all_frag_pages_old()
Free all the fragment pages when the next page of the first LOB page IS NOT USED to link the fragment...
Definition: zlob0first.cc:591
 
size_t make_empty()
Free all the pages of the zlob except the first page.
Definition: zlob0first.cc:689
 
void set_prev_page_no(page_no_t page_no, mtr_t *mtr)
Set the FIL_PAGE_PREV to the given value.
Definition: zlob0first.h:212
 
static const ulint OFFSET_INDEX_BEGIN
Begin of index entries.
Definition: zlob0first.h:82
 
static const ulint OFFSET_DATA_LEN
The length of compressed data stored in this page.
Definition: zlob0first.h:56
 
flst_node_t * addr2ptr_s(fil_addr_t &addr)
Load the page, in s-latch mode, containing the given file address.
Definition: zlob0first.h:575
 
size_t free_all_frag_node_pages()
Free all the z_frag_page_t pages.
Definition: zlob0first.cc:338
 
ulint size_of_index_entries() const
Definition: zlob0first.cc:400
 
void init()
Definition: zlob0first.h:225
 
uint32_t get_lob_version()
Get the LOB version.
Definition: zlob0first.h:438
 
bool validate()
Validate the LOB.
Definition: zlob0first.h:609
 
bool is_empty() const
Definition: zlob0first.h:107
 
size_t free_all_index_pages()
Free all the index pages.
Definition: zlob0first.cc:371
 
void dealloc()
Deallocate the first page of a compressed LOB.
Definition: zlob0first.cc:425
 
void set_last_trx_id_no_redo(trx_id_t tid)
Update the last transaction identifier in the header, without generating redo logs.
Definition: zlob0first.h:471
 
buf_block_t * m_block
The buffer block of the first page.
Definition: zlob0first.h:642
 
void set_prev_page_null()
Set the FIL_PAGE_PREV to FIL_NULL.
Definition: zlob0first.h:199
 
bool verify_frag_page_no()
Verify that the page number pointed to by FIL_PAGE_PREV of the first page of LOB is indeed a fragment...
Definition: zlob0first.cc:699
 
page_no_t get_frag_node_page_no()
All the frag node pages are singly linked with each other, and the first page contains the link to on...
Definition: zlob0first.h:390
 
buf_block_t * alloc(bool bulk)
Definition: zlob0first.cc:90
 
void set_mtr(mtr_t *mtr)
Definition: zlob0first.h:626
 
flst_node_t * addr2ptr_x(fil_addr_t &addr) const
Load the page, in x-latch mode, containing the given file address.
Definition: zlob0first.h:558
 
static const ulint OFFSET_FRAG_LIST
List of frag entries.
Definition: zlob0first.h:78
 
void set_next_page_null()
Set the FIL_PAGE_NEXT to FIL_NULL.
Definition: zlob0first.h:196
 
size_t free_all_data_pages()
Free all the data pages.
Definition: zlob0first.cc:487
 
z_frag_entry_t alloc_frag_entry(bool bulk)
Allocate one frag page entry.
Definition: zlob0first.cc:193
 
void set_next_page_no(page_no_t page_no, mtr_t *mtr)
Set the FIL_PAGE_NEXT to the given value.
Definition: zlob0first.h:204
 
void set_version_0()
Definition: zlob0first.h:119
 
void set_trx_id(trx_id_t tid)
Update the trx id in the header.
Definition: zlob0first.h:415
 
flst_node_t * addr2ptr_x(fil_addr_t &addr, mtr_t *mtr) const
Load the page, in x-latch mode, containing the given file address.
Definition: zlob0first.h:566
 
static const ulint OFFSET_FLAGS
One byte of flag bits.
Definition: zlob0first.h:44
 
ulint get_n_index_entries() const
Given the page size, what is the number of index entries the first page can contain.
Definition: zlob0first.cc:37
 
page_type_t get_page_type() const
Definition: zlob0first.h:146
 
page_id_t get_page_id() const
Get the page id of the first page of compressed LOB.
Definition: zlob0first.h:258
 
flst_base_node_t * frag_list() const
Definition: zlob0first.h:501
 
void set_last_trx_id(trx_id_t tid)
Definition: zlob0first.h:462
 
static const ulint OFFSET_TRX_ID
The transaction that created data in the data portion.
Definition: zlob0first.h:59
 
flst_base_node_t * free_list() const
Definition: zlob0first.h:493
 
ulint begin_data() const
Definition: zlob0first.h:103
 
bool validate_low()
Validate the LOB.
Definition: zlob0first.cc:534
 
static const uint32_t OFFSET_LOB_VERSION
LOB version.
Definition: zlob0first.h:47
 
byte * begin_data_ptr() const
Definition: zlob0first.h:123
 
page_no_t get_page_no() const
Get the page number.
Definition: zlob0first.h:254
 
void set_space_id_no_redo(space_id_t space_id)
Write the space identifier to the page header, without generating redo log records.
Definition: zlob0first.h:220
 
mtr_t * m_mtr
The mini-transaction context.
Definition: zlob0first.h:645
 
undo_no_t get_last_trx_undo_no() const
Definition: zlob0first.h:488
 
void set_frag_page_no(mtr_t *mtr, page_no_t page_no)
All the fragment pages (.
Definition: zlob0first.h:321
 
ulint get_index_list_length() const
Get the length of the index list.
Definition: zlob0first.h:114
 
size_t destroy()
Free all the pages of the zlob.
Definition: zlob0first.cc:682
 
dict_index_t * m_index
The index dictionary object.
Definition: zlob0first.h:648
 
z_index_entry_t alloc_index_entry(bool bulk)
Allocate one index entry.
Definition: zlob0first.cc:168
 
static const ulint OFFSET_FREE_LIST
List of free index entries.
Definition: zlob0first.h:68
 
static const ulint OFFSET_FRAG_NODES_PAGE_NO
The next frag nodes page.
Definition: zlob0first.h:65
 
page_no_t get_frag_page_no() const
All the fragment pages are doubly linked with each other, and the first page contains the link to one...
Definition: zlob0first.h:298
 
size_t free_all_frag_pages_new()
Free all the fragment pages when the next page of the first LOB page IS USED to link the fragment pag...
Definition: zlob0first.cc:656
 
static const ulint OFFSET_FREE_FRAG_LIST
List of free frag entries.
Definition: zlob0first.h:74
 
static const ulint OFFSET_INDEX_LIST
List of index entries.
Definition: zlob0first.h:71
 
buf_block_t * load_s(page_no_t page_no)
Load the given page number as the first page in s-latch mode.
Definition: zlob0first.h:182
 
z_first_page_t(mtr_t *mtr, dict_index_t *index)
Definition: zlob0first.h:134
 
z_first_page_t()
Definition: zlob0first.h:132
 
z_first_page_t(buf_block_t *block, mtr_t *mtr, dict_index_t *index)
Definition: zlob0first.h:139
 
void set_last_trx_undo_no(undo_no_t undo_no)
Definition: zlob0first.h:476
 
void set_index_page_no(page_no_t page_no)
All the index pages are singly linked with each other, and the first page contains the link to one in...
Definition: zlob0first.h:273
 
bool can_be_partially_updated()
When the bit is set, the LOB is not partially updatable anymore.
Definition: zlob0first.h:452
 
static const ulint OFFSET_LAST_TRX_ID
The last transaction that modified this LOB.
Definition: zlob0first.h:50
 
flst_base_node_t * index_list() const
Definition: zlob0first.h:495
 
uint8_t get_flags()
Get one byte of flags.
Definition: zlob0first.h:447
 
flst_base_node_t * free_frag_list() const
Definition: zlob0first.h:497
 
void set_page_type()
Definition: zlob0first.h:402
 
void mark_cannot_be_partially_updated(trx_t *trx)
When the bit is set, the LOB is not partially updatable anymore.
Definition: zlob0first.cc:469
 
fil_addr_t get_self_addr() const
Definition: zlob0first.h:264
 
void load_entry_s(fil_addr_t &addr, z_index_entry_t &entry)
Load the entry available in the given file address.
Definition: zlob0first.cc:416
 
ulint payload()
Amount of zlob data that can be stored in first page (in bytes).
Definition: zlob0first.h:126
 
frag_id_t alloc_fragment(bool bulk, ulint len, z_frag_page_t &frag_page, z_frag_entry_t &entry)
Allocate a fragment of the given size.
Definition: zlob0first.cc:216
 
void load_entry_x(fil_addr_t &addr, z_index_entry_t &entry)
Load the entry available in the given file address.
Definition: zlob0first.cc:420
 
void set_frag_node_page_no(page_no_t page_no, mtr_t *mtr)
All the frag node pages (.
Definition: zlob0first.h:350
 
std::ostream & print_index_entries(std::ostream &out) const
Print the index entries.
Definition: zlob0first.cc:107
 
trx_id_t get_last_trx_id() const
Definition: zlob0first.h:483
 
page_no_t get_frag_page_no(mtr_t *mtr) const
All the fragment pages are doubly linked with each other, and the first page contains the link to one...
Definition: zlob0first.h:305
 
ulint begin_frag_entries() const
Definition: zlob0first.h:99
 
void init_index_entries()
Definition: zlob0first.cc:404
 
void set_index_page_no(page_no_t page_no, mtr_t *mtr)
All the index pages are singly linked with each other, and the first page contains the link to one in...
Definition: zlob0first.h:281
 
void set_trx_id_no_redo(trx_id_t tid)
Update the trx id in the header, without generating redo log records.
Definition: zlob0first.h:424
 
byte * frame() const
Definition: zlob0first.h:553
 
static const ulint OFFSET_VERSION
Version information.
Definition: zlob0first.h:40
 
void set_frag_page_no(page_no_t page_no)
All the fragment pages (.
Definition: zlob0first.h:330
 
buf_block_t * load_x(mtr_t *mtr) const
Load the first page using given mini-transaction.
Definition: zlob0first.h:165
 
ulint get_data_len() const
Get the amount of zlob data stored in this page.
Definition: zlob0first.h:249
 
ulint size_of_frag_entries() const
Definition: zlob0first.h:95
 
std::ostream & print(std::ostream &out) const
Print the page.
Definition: zlob0first.cc:329
 
buf_block_t * load_x(page_no_t page_no)
Load the given page number as the first page in x-latch mode.
Definition: zlob0first.h:153
 
An entry representing one fragment page.
Definition: lob0impl.h:555
 
void init()
Initialize the fragment entry contents.
Definition: lob0impl.h:593
 
static const ulint SIZE
Total size of one frag entry.
Definition: lob0impl.h:579
 
void push_back(flst_base_node_t *bnode)
Add this node as the last node in the given list.
Definition: lob0impl.h:638
 
The fragment page.
Definition: lob0impl.h:1352
 
An index entry pointing to one zlib stream.
Definition: zlob0index.h:87
 
Mini-transaction handle and buffer.
Definition: mtr0mtr.h:177
 
mtr_log_t set_log_mode(mtr_log_t mode)
Change the logging mode.
Definition: mtr0mtr.cc:468
 
mtr_log_t get_log_mode() const
Get the logging mode.
Definition: mtr0mtr.ic:153
 
Definition: trx0trx.h:675
 
@ RW_X_LATCH
Definition: sync0rw.h:98
 
@ RW_S_LATCH
Definition: sync0rw.h:97
 
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_LOCATION_HERE
Definition: ut0core.h:73
 
#define ut_ad(EXPR)
Debug assertion.
Definition: ut0dbg.h:105
 
int n
Definition: xcom_base.cc:509