MySQL  8.0.22
Source Code Documentation
lob::DeleteContext Struct Reference

The context information when the delete operation on LOB is taking place. More...

#include <lob0lob.h>

Inheritance diagram for lob::DeleteContext:
lob::BtrContext

Public Member Functions

 DeleteContext (const BtrContext &btr, byte *field_ref, ulint field_no, bool rollback)
 Constructor. More...
 
bool is_ref_valid () const
 
bool is_compressed () const
 Determine if it is compressed page format. More...
 
bool has_atomic_blobs () const
 Check if tablespace supports atomic blobs. More...
 
bool is_delete_marked () const
 
bool validate_blobref () const
 Validate the LOB reference object. More...
 
void x_latch_rec_page (mtr_t *mtr)
 Acquire an x-latch on the index page containing the clustered index record, in the given mini-transaction context. More...
 
- Public Member Functions inherited from lob::BtrContext
 BtrContext ()
 Default 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, ibool 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)
 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)
 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...
 
FlushObserverget_flush_observer () const
 Get flush observer. More...
 
ulint * get_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

ref_t m_blobref
 the BLOB reference or external field reference. More...
 
ulint m_field_no
 field number of externally stored column; ignored if rec == NULL More...
 
bool m_rollback
 Is this operation part of rollback? More...
 
page_size_t m_page_size
 
- Public Attributes inherited from lob::BtrContext
mtr_tm_mtr
 
btr_pcur_tm_pcur
 
dict_index_tm_index
 
rec_tm_rec
 
ulint * m_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...
 

Private Member Functions

page_size_t get_page_size () const
 Obtain the page size from the tablespace flags. More...
 

Private Attributes

ref_mem_t m_blobref_mem
 Memory copy of the original LOB reference. More...
 

Detailed Description

The context information when the delete operation on LOB is taking place.

Constructor & Destructor Documentation

◆ DeleteContext()

lob::DeleteContext::DeleteContext ( const BtrContext btr,
byte field_ref,
ulint  field_no,
bool  rollback 
)
inline

Constructor.

Member Function Documentation

◆ get_page_size()

page_size_t lob::DeleteContext::get_page_size ( ) const
inlineprivate

Obtain the page size from the tablespace flags.

Returns
the page size.

◆ has_atomic_blobs()

bool lob::DeleteContext::has_atomic_blobs ( ) const
inline

Check if tablespace supports atomic blobs.

Returns
true if tablespace has atomic blobs.

◆ is_compressed()

bool lob::DeleteContext::is_compressed ( ) const
inline

Determine if it is compressed page format.

Returns
true if compressed.

◆ is_delete_marked()

bool lob::DeleteContext::is_delete_marked ( ) const
inline

◆ is_ref_valid()

bool lob::DeleteContext::is_ref_valid ( ) const
inline

◆ validate_blobref()

bool lob::DeleteContext::validate_blobref ( ) const
inline

Validate the LOB reference object.

Returns
true if valid, false otherwise.

◆ x_latch_rec_page()

void lob::DeleteContext::x_latch_rec_page ( mtr_t mtr)

Acquire an x-latch on the index page containing the clustered index record, in the given mini-transaction context.

Parameters
[in]mtrMini-transaction context.

Member Data Documentation

◆ m_blobref

ref_t lob::DeleteContext::m_blobref

the BLOB reference or external field reference.

◆ m_blobref_mem

ref_mem_t lob::DeleteContext::m_blobref_mem
private

Memory copy of the original LOB reference.

◆ m_field_no

ulint lob::DeleteContext::m_field_no

field number of externally stored column; ignored if rec == NULL

◆ m_page_size

page_size_t lob::DeleteContext::m_page_size

◆ m_rollback

bool lob::DeleteContext::m_rollback

Is this operation part of rollback?


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