MySQL 8.0.39
Source Code Documentation
lob::InsertContext Struct Reference

The context for a LOB operation. More...

#include <lob0lob.h>

Inheritance diagram for lob::InsertContext:
[legend]

Public Member Functions

 InsertContext (const BtrContext &btr_ctx, const big_rec_t *big_rec_vec)
 Constructor. More...
 
const big_rec_tget_big_rec_vec ()
 Get the vector containing fields to be stored externally. More...
 
ulint get_big_rec_vec_size ()
 Get the size of vector containing fields to be stored externally. More...
 
- Public Member Functions inherited from lob::BtrContext
 BtrContext ()
 Default Constructor. More...
 
 BtrContext (mtr_t *mtr, dict_index_t *index, buf_block_t *block)
 Constructor. More...
 
 BtrContext (mtr_t *mtr, btr_pcur_t *pcur, dict_index_t *index, rec_t *rec, ulint *offsets, buf_block_t *block)
 Constructor. More...
 
 BtrContext (mtr_t *mtr, btr_pcur_t *pcur, dict_index_t *index, rec_t *rec, ulint *offsets, buf_block_t *block, opcode op)
 Constructor. More...
 
 BtrContext (const BtrContext &other)
 Copy Constructor. More...
 
void disown_inherited_fields (const upd_t *update)
 Marks non-updated off-page fields as disowned by this record. More...
 
void set_ownership_of_extern_field (ulint i, bool val)
 Sets the ownership bit of an externally stored field in a record. More...
 
void unmark_extern_fields ()
 Marks all extern fields in a record as owned by the record. More...
 
void free_externally_stored_fields (trx_id_t trx_id, undo_no_t undo_no, bool rollback, ulint rec_type, purge_node_t *node)
 Frees the externally stored fields for a record. More...
 
void free_updated_extern_fields (trx_id_t trx_id, undo_no_t undo_no, const upd_t *update, bool rollback, big_rec_t *big_rec_vec)
 Frees the externally stored fields for a record, if the field is mentioned in the update vector. More...
 
page_zip_des_tget_page_zip () const
 Gets the compressed page descriptor. More...
 
page_no_t get_page_no () const
 Get the page number of clustered index block. More...
 
ulint get_rec_offset () const
 Get the record offset within page of the clustered index record. More...
 
bool need_recalc () const
 Check if there is a need to recalculate the context information. More...
 
rec_trec () const
 Get the clustered index record pointer. More...
 
byteget_field_ref (ulint field_no) const
 Get the LOB reference for the given field number. More...
 
bool validate () const
 Validate the current BLOB context object. More...
 
bool are_all_blobrefs_valid () const
 Check to see if all pointers to externally stored columns in the record must be valid. More...
 
bool is_bulk () const
 Determine whether current operation is a bulk insert operation. More...
 
const page_trec_frame () const
 Get the beginning of the B-tree clustered index page frame that contains the current clustered index record (m_rec). More...
 
void commit_btr_mtr ()
 Commit the mini-transaction that is holding the latches of the clustered index record block. More...
 
void start_btr_mtr ()
 Start the mini-transaction that will be holding the latches of the clustered index record block. More...
 
page_no_t get_btr_page_no () const
 Get the page number of clustered index record. More...
 
void rec_block_fix ()
 Increment the buffer fix count of the clustered index record block. More...
 
void rec_block_unfix ()
 Decrement the buffer fix count of the clustered index record block, X-latching it before, so that the overall buffer_fix_count doesn't change. More...
 
void restore_position ()
 Restore the position of the persistent cursor. More...
 
dict_index_tindex () const
 Get the index object. More...
 
dict_table_ttable () const
 Get the table object. More...
 
space_id_t space () const
 Get the space id. More...
 
const page_size_t page_size () const
 Obtain the page size of the underlying table. More...
 
page_no_t pages_in_extent () const
 Determine the extent size (in pages) for the underlying table. More...
 
void check_redolog ()
 Check if there is enough space in the redo log file. More...
 
void make_nth_extern (ulint field_no)
 Mark the nth field as externally stored. More...
 
mtr_log_t get_log_mode ()
 Get the log mode of the btr mtr. More...
 
Flush_observerget_flush_observer () const
 Get flush observer. More...
 
ulintget_offsets () const
 Get the record offsets array. More...
 
bool rec_offs_validate () const
 Validate the record offsets array. More...
 
mtr_tget_mtr ()
 Get the associated mini-transaction. More...
 
buf_block_tblock () const
 Get the pointer to the clustered record block. More...
 
void store_position ()
 Save the position of the persistent cursor. More...
 
void check_redolog_normal ()
 Check if there is enough space in log file. More...
 
void check_redolog_bulk ()
 When bulk load is being done, check if there is enough space in redo log file. More...
 
void recalc ()
 Recalculate some of the members after restoring the persistent cursor. More...
 
void zblob_write_blobref (ulint field_no, mtr_t *mtr)
 Write a blob reference of a field into a clustered index record in a compressed leaf page. More...
 

Public Attributes

const big_rec_tm_big_rec_vec
 The B-tree Context. More...
 
- Public Attributes inherited from lob::BtrContext
mtr_tm_mtr
 The btr mtr that is holding the latch on the B-tree index page containing the clustered index record. More...
 
btr_pcur_tm_pcur
 Persistent cursor positioned on the clustered index record. More...
 
dict_index_tm_index
 
rec_tm_rec
 
ulintm_offsets
 
buf_block_tm_block
 
opcode m_op
 
ulint m_rec_offset
 Record offset within the page. More...
 
page_no_t m_btr_page_no
 Page number where the clust rec is present. More...
 

Detailed Description

The context for a LOB operation.

It contains the necessary information to carry out a LOB operation.

Constructor & Destructor Documentation

◆ InsertContext()

lob::InsertContext::InsertContext ( const BtrContext btr_ctx,
const big_rec_t big_rec_vec 
)
inline

Constructor.

Parameters
[in]btr_ctxb-tree context for lob operation.
[in]big_rec_vecarray of blobs

Member Function Documentation

◆ get_big_rec_vec()

const big_rec_t * lob::InsertContext::get_big_rec_vec ( )
inline

Get the vector containing fields to be stored externally.

Returns
the big record vector

◆ get_big_rec_vec_size()

ulint lob::InsertContext::get_big_rec_vec_size ( )
inline

Get the size of vector containing fields to be stored externally.

Returns
the big record vector size

Member Data Documentation

◆ m_big_rec_vec

const big_rec_t* lob::InsertContext::m_big_rec_vec

The B-tree Context.

vector containing fields to be stored externally


The documentation for this struct was generated from the following file: