160 const ulint payload_size =
162 return (payload_size);
uint32_t page_no_t
Page number.
Definition: api0api.h:50
static buf_frame_t * buf_block_get_frame(const buf_block_t *block)
Gets a pointer to the memory frame of a block.
mtr_log_t get_log_mode()
Get the log mode of the btr mtr.
Definition: lob0lob.h:1017
Flush_observer * get_flush_observer() const
Get flush observer.
Definition: lob0lob.h:1021
dict_index_t * index() const
Get the index object.
Definition: lob0lob.h:973
const page_size_t page_size() const
Obtain the page size of the underlying table.
Definition: lob0lob.h:993
Insert or write an uncompressed BLOB.
Definition: lob0ins.h:101
ulint m_remaining
Data remaining to be written.
Definition: lob0ins.h:179
void write_into_single_page(big_rec_field_t &field)
Write contents into a single BLOB page.
Definition: lob0ins.cc:237
dberr_t write_one_blob(size_t blob_j)
Write one blob field data.
Definition: lob0ins.cc:143
dberr_t write_first_page(big_rec_field_t &field)
Write first blob page.
Definition: lob0ins.cc:178
void set_page_next()
Make the current page as next page of previous page.
Definition: lob0ins.cc:171
ulint payload() const
Calculate the payload size of the BLOB page.
Definition: lob0ins.h:158
~Inserter()=default
Destructor.
dberr_t write_one_small_blob(size_t blob_j)
Write one blob field data.
Definition: lob0ins.cc:123
bool is_ok() const
Check if the BLOB operation has reported any errors.
Definition: lob0ins.h:133
blob_dir_t m_dir
The BLOB directory information.
Definition: lob0ins.h:176
void log_page_type()
Write the page type of the current BLOB page and also generate the redo log record.
Definition: lob0ins.h:142
dberr_t write_single_blob_page(big_rec_field_t &field, ulint nth_blob_page)
Write one blob page.
Definition: lob0ins.cc:211
Inserter(InsertContext *ctx)
Constructor.
Definition: lob0ins.h:105
dberr_t write()
Write all the BLOBs of the clustered index record.
Definition: lob0ins.cc:105
Page size descriptor.
Definition: page0size.h:50
size_t physical() const
Retrieve the physical page size (on-disk).
Definition: page0size.h:121
dberr_t
Definition: db0err.h:39
@ DB_SUCCESS
Definition: db0err.h:43
static bool dict_index_is_sdi(const dict_index_t *index)
Check if the index is SDI index.
Fido Client Authentication nullptr
Definition: fido_client_plugin.cc:222
uint16_t page_type_t
Definition: fil0fil.h:1193
constexpr page_no_t FIL_NULL
'null' (undefined) page offset in the context of file spaces
Definition: fil0fil.h:1131
constexpr page_type_t FIL_PAGE_SDI_BLOB
Uncompressed SDI BLOB page.
Definition: fil0fil.h:1262
constexpr page_type_t FIL_PAGE_TYPE_BLOB
Uncompressed BLOB page.
Definition: fil0fil.h:1237
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_DATA_END
size of the page trailer
Definition: fil0types.h:119
Implements the large objects (LOB) module.
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
#define mtr_start(m)
Start a mini-transaction.
Definition: mtr0mtr.h:50
@ MLOG_2BYTES
2 bytes ...
Definition: mtr0types.h:73
Provides the large objects (LOB) module.
Definition: lob0del.h:32
const ulint LOB_HDR_SIZE
Size of an uncompressed LOB page header, in bytes.
Definition: lob0lob.h:148
byte page_t
Type of the index page.
Definition: page0types.h:152
A slot for a field in a big rec vector.
Definition: data0data.h:799
The buffer control block structure.
Definition: buf0buf.h:1690
This struct can hold BLOB routines/functions, and state variables, that are common for compressed and...
Definition: lob0ins.h:36
buf_block_t * alloc_blob_page()
Allocate one BLOB page.
Definition: lob0ins.cc:35
page_t * cur_page() const
Get the current BLOB page frame.
Definition: lob0ins.h:77
buf_block_t * get_previous_blob_block()
Get the previous BLOB page block.
Definition: lob0ins.cc:76
BaseInserter(InsertContext *ctx)
Constructor.
Definition: lob0ins.h:39
page_t * get_previous_blob_page()
Get the previous BLOB page frame.
Definition: lob0ins.cc:98
buf_block_t * m_cur_blob_block
The current BLOB buf_block_t object.
Definition: lob0ins.h:94
mtr_t m_blob_mtr
The mini trx used to write into blob pages.
Definition: lob0ins.h:87
bool is_index_sdi()
Check if the index is SDI index.
Definition: lob0ins.h:73
mtr_t * start_blob_mtr()
Start the BLOB mtr.
Definition: lob0ins.h:48
page_no_t m_prev_page_no
The previous BLOB page number.
Definition: lob0ins.h:91
page_no_t m_cur_blob_page_no
The current BLOB page number.
Definition: lob0ins.h:97
InsertContext * m_ctx
The BLOB operation context.
Definition: lob0ins.h:81
dberr_t m_err
Success or failure status of the operation so far.
Definition: lob0ins.h:84
The context for a LOB operation.
Definition: lob0lob.h:1099
The in-memory blob directory.
Definition: lob0lob.h:1174
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:471
void set_flush_observer(Flush_observer *observer)
Set flush observer.
Definition: mtr0mtr.h:522
unsigned long int ulint
Definition: univ.i:406