MySQL  8.0.21
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. 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 restart_mtr ()
 The btr mini transaction will be restarted. 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 restart_mtr_normal ()
 Commit and re-start the mini transaction. More...
 
void restart_mtr_bulk ()
 When bulk load is being done, Commit and re-start the mini transaction. 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]mtrthe mini-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: