MySQL  8.0.20
Source Code Documentation
purge_node_t Struct Reference

#include <row0purge.h>

Classes

struct  rec_t
 Info required to purge a record. More...
 

Public Types

using Recs = std::list< rec_t, mem_heap_allocator< rec_t > >
 

Public Member Functions

bool is_table_id_exists (table_id_t table_id) const
 Check if undo records of given table_id is there in this purge node. More...
 
bool check_duplicate_undo_no () const
 Check if there are more than one undo record with same (trx_id, undo_no) combination. More...
 
bool validate_pcur ()
 Validate the persisent cursor. More...
 

Public Attributes

que_common_t common
 node type: QUE_NODE_PURGE More...
 
roll_ptr_t roll_ptr
 roll pointer to undo log record More...
 
undo_no_t undo_no
 undo number of the record More...
 
ulint rec_type
 undo log record type: TRX_UNDO_INSERT_REC, ... More...
 
dict_table_ttable
 table where purge is done More...
 
MDL_ticketmdl
 MDL ticket for the table name. More...
 
dict_table_tparent
 parent table for an FTS AUX TABLE More...
 
MDL_ticketparent_mdl
 MDL ticket for the parent table of an FTS AUX TABLE. More...
 
TABLEmysql_table
 MySQL table instance. More...
 
ulint cmpl_info
 compiler analysis info of an update More...
 
upd_tupdate
 update vector for a clustered index record More...
 
dtuple_tref
 NULL, or row reference to the next row to handle. More...
 
dtuple_trow
 NULL, or a copy (also fields copied to heap) of the indexed fields of the row to handle. More...
 
dict_index_tindex
 NULL, or the next index whose record should be handled. More...
 
mem_heap_theap
 The heap is owned by purge_sys and is reset after a purge batch has completed. More...
 
bool found_clust
 true if the clustered index record determined by ref was found in the clustered index, and we were able to position pcur on it More...
 
btr_pcur_t pcur
 persistent cursor used in searching the clustered index record More...
 
bool done
 Debug flag. More...
 
trx_id_t trx_id
 trx id for this purging record More...
 
trx_id_t modifier_trx_id
 trx id for this purging record More...
 
Recsrecs
 Undo recs to purge. More...
 
trx_rseg_trseg
 

Member Typedef Documentation

◆ Recs

Member Function Documentation

◆ check_duplicate_undo_no()

bool purge_node_t::check_duplicate_undo_no ( ) const

Check if there are more than one undo record with same (trx_id, undo_no) combination.

Returns
true when no duplicates are found, false otherwise.

◆ is_table_id_exists()

bool purge_node_t::is_table_id_exists ( table_id_t  table_id) const

Check if undo records of given table_id is there in this purge node.

Parameters
[in]table_idlook for undo records of this table id.
Returns
true if undo records of table id exists, false otherwise.

◆ validate_pcur()

bool purge_node_t::validate_pcur ( )

Validate the persisent cursor.

The purge node has two references to the clustered index record - one via the ref member, and the other via the persistent cursor. These two references must match each other if the found_clust flag is set.

Returns
true if the persistent cursor is consistent with the ref member.

The purge node has two references to the clustered index record - one via the ref member, and the other via the persistent cursor. These two references must match each other if the found_clust flag is set.

Returns
true if the stored copy of persistent cursor is consistent with the ref member.

Member Data Documentation

◆ cmpl_info

ulint purge_node_t::cmpl_info

compiler analysis info of an update

◆ common

que_common_t purge_node_t::common

node type: QUE_NODE_PURGE

◆ done

bool purge_node_t::done

Debug flag.

◆ found_clust

bool purge_node_t::found_clust

true if the clustered index record determined by ref was found in the clustered index, and we were able to position pcur on it

◆ heap

mem_heap_t* purge_node_t::heap

The heap is owned by purge_sys and is reset after a purge batch has completed.

◆ index

dict_index_t* purge_node_t::index

NULL, or the next index whose record should be handled.

◆ mdl

MDL_ticket* purge_node_t::mdl

MDL ticket for the table name.

◆ modifier_trx_id

trx_id_t purge_node_t::modifier_trx_id

trx id for this purging record

◆ mysql_table

TABLE* purge_node_t::mysql_table

MySQL table instance.

◆ parent

dict_table_t* purge_node_t::parent

parent table for an FTS AUX TABLE

◆ parent_mdl

MDL_ticket* purge_node_t::parent_mdl

MDL ticket for the parent table of an FTS AUX TABLE.

◆ pcur

btr_pcur_t purge_node_t::pcur

persistent cursor used in searching the clustered index record

◆ rec_type

ulint purge_node_t::rec_type

undo log record type: TRX_UNDO_INSERT_REC, ...

◆ recs

Recs* purge_node_t::recs

Undo recs to purge.

◆ ref

dtuple_t* purge_node_t::ref

NULL, or row reference to the next row to handle.

◆ roll_ptr

roll_ptr_t purge_node_t::roll_ptr

roll pointer to undo log record

◆ row

dtuple_t* purge_node_t::row

NULL, or a copy (also fields copied to heap) of the indexed fields of the row to handle.

◆ rseg

trx_rseg_t* purge_node_t::rseg

◆ table

dict_table_t* purge_node_t::table

table where purge is done

◆ trx_id

trx_id_t purge_node_t::trx_id

trx id for this purging record

◆ undo_no

undo_no_t purge_node_t::undo_no

undo number of the record

◆ update

upd_t* purge_node_t::update

update vector for a clustered index record


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