MySQL 8.4.0
Source Code Documentation
lob::undo_vers_t Struct Reference

The list of modifications to be applied on LOBs to get older versions. More...

#include <lob0undo.h>

Public Member Functions

undo_seq_tget_undo_sequence_if_exists (ulint field_no)
 Get the undo log sequence object for the given field number, which represents one blob. More...
 
undo_seq_tget_undo_sequence (ulint field_no)
 Get the undo log sequence object for the given field number, which represents one blob. More...
 
void reset ()
 Empty the collected LOB undo information from cache. More...
 
void apply (dict_index_t *clust_index, ulint field_no, byte *lob, size_t len, size_t lob_version, page_no_t first_page)
 Apply the undo log record on the given LOB in memory. More...
 
void destroy ()
 Destroy the accumulated undo_seq_t objects. More...
 
bool is_empty () const
 Check if the undo contained older versions. More...
 
 ~undo_vers_t ()
 Destructor to free the resources. More...
 

Private Attributes

std::list< undo_seq_t * > * m_versions = nullptr
 Maintain a list of undo_seq_t objects. More...
 

Detailed Description

The list of modifications to be applied on LOBs to get older versions.

Given a field number, it should be able to obtain the list of undo information.

Constructor & Destructor Documentation

◆ ~undo_vers_t()

lob::undo_vers_t::~undo_vers_t ( )
inline

Destructor to free the resources.

Member Function Documentation

◆ apply()

void lob::undo_vers_t::apply ( dict_index_t clust_index,
ulint  field_no,
byte lob,
size_t  len,
size_t  lob_version,
page_no_t  first_page 
)
inline

Apply the undo log record on the given LOB in memory.

Parameters
[in]clust_indexthe clust index to which LOB belongs.
[in]field_nothe field number of the LOB.
[in]lobthe LOB data.
[in]lenthe length of LOB.
[in]lob_versionLOB version number.
[in]first_pagethe first page number of LOB.

◆ destroy()

void lob::undo_vers_t::destroy ( )
inline

Destroy the accumulated undo_seq_t objects.

◆ get_undo_sequence()

undo_seq_t * lob::undo_vers_t::get_undo_sequence ( ulint  field_no)
inline

Get the undo log sequence object for the given field number, which represents one blob.

The undo sequence object is allocated if it does not exist.

Parameters
[in]field_nothe field number of the blob.
Returns
the undo sequence object.

◆ get_undo_sequence_if_exists()

undo_seq_t * lob::undo_vers_t::get_undo_sequence_if_exists ( ulint  field_no)
inline

Get the undo log sequence object for the given field number, which represents one blob.

Parameters
[in]field_nothe field number of the blob.
Returns
the undo sequence object or nullptr.

◆ is_empty()

bool lob::undo_vers_t::is_empty ( void  ) const
inline

Check if the undo contained older versions.

Returns
true if there are no older versions, false otherwise.

◆ reset()

void lob::undo_vers_t::reset ( void  )
inline

Empty the collected LOB undo information from cache.

Member Data Documentation

◆ m_versions

std::list<undo_seq_t *>* lob::undo_vers_t::m_versions = nullptr
private

Maintain a list of undo_seq_t objects.


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