MySQL  8.0.27
Source Code Documentation
Transaction_payload_log_event Class Reference

#include <log_event.h>

Inheritance diagram for Transaction_payload_log_event:
binary_log::Transaction_payload_event Log_event binary_log::Binary_log_event

Classes

class  Applier_context
 

Public Member Functions

 Transaction_payload_log_event (THD *thd_arg, const char *payload, uint64_t payload_size, uint16_t compression_type, uint64_t uncompressed_size)
 
 Transaction_payload_log_event (THD *thd_arg, const char *payload, uint64_t payload_size)
 
 Transaction_payload_log_event (THD *thd_arg)
 
 Transaction_payload_log_event (const char *buf, const Format_description_event *fde)
 
 ~Transaction_payload_log_event () override=default
 
size_t get_event_length ()
 
size_t get_data_size () override
 
int do_apply_event (Relay_log_info const *rli) override
 
bool apply_payload_event (Relay_log_info const *rli, const uchar *event_buf)
 
enum_skip_reason do_shall_skip (Relay_log_info *rli) override
 Decide if this event shall be skipped or not and the reason for skipping it. More...
 
int pack_info (Protocol *protocol) override
 Stores a string representation of this event in the Protocol. More...
 
bool ends_group () const override
 
bool write (Basic_ostream *ostream) override
 
uint8 get_mts_dbs (Mts_db_names *arg, Rpl_filter *rpl_filter) override
 
void set_mts_dbs (Mts_db_names &arg)
 
uint8 mts_number_dbs () override
 
- Public Member Functions inherited from binary_log::Transaction_payload_event
 Transaction_payload_event (const char *payload, uint64_t payload_size)
 Creates Transaction_payload_event with the given data which has the given size. More...
 
 Transaction_payload_event (const char *payload, uint64_t payload_size, uint16_t compression_type, uint64_t uncompressed_size)
 Creates Transaction_payload_event with the given data which has the given size. More...
 
 Transaction_payload_event (const char *buf, const Format_description_event *fde)
 This constructor takes a raw buffer and a format descriptor event and decodes the buffer. More...
 
 ~Transaction_payload_event () override
 This destroys the transaction payload event. More...
 
void set_compression_type (transaction::compression::type type)
 Shall set the compression type used for the enclosed payload. More...
 
transaction::compression::type get_compression_type () const
 Shall return the compression type used for the enclosed payload. More...
 
void set_payload_size (uint64_t size)
 Shall set the size of the payload inside this event. More...
 
uint64_t get_payload_size () const
 Shall get the size of the payload inside this event. More...
 
void set_uncompressed_size (uint64_t size)
 Shall set the uncompressed size of the payload. More...
 
uint64_t get_uncompressed_size () const
 Shall get the uncompressed size of the event. More...
 
void set_payload (const char *data)
 Shall set the payload of the event. More...
 
const char * get_payload () const
 Shall get the payload of the event. More...
 
std::string to_string () const
 Shall return a textual representation of this event. More...
 
- Public Member Functions inherited from binary_log::Binary_log_event
virtual ~Binary_log_event ()=0
 
 Binary_log_event (const Binary_log_event &)=default
 
 Binary_log_event (Binary_log_event &&)=default
 
Binary_log_eventoperator= (const Binary_log_event &)=default
 
Binary_log_eventoperator= (Binary_log_event &&)=default
 
enum Log_event_type get_event_type () const
 Helper method. More...
 
const Log_event_headerheader () const
 Return a const pointer to the header of the log event. More...
 
Log_event_headerheader ()
 Return a non-const pointer to the header of the log event. More...
 
const Log_event_footerfooter () const
 Return a const pointer to the footer of the log event. More...
 
Log_event_footerfooter ()
 Return a non-const pointer to the footer of the log event. More...
 
Event_readerreader ()
 Returns a reference to the event Event_reader object. More...
 
- Public Member Functions inherited from Log_event
 Log_event (Log_event_header *header, Log_event_footer *footer, enum_event_cache_type cache_type_arg, enum_event_logging_type logging_type_arg)
 This minimal constructor is for when you are not even sure that there is a valid THD. More...
 
 Log_event (THD *thd_arg, uint16 flags_arg, enum_event_cache_type cache_type_arg, enum_event_logging_type logging_type_arg, Log_event_header *header, Log_event_footer *footer)
 
int net_send (Protocol *protocol, const char *log_name, my_off_t pos)
 Only called by SHOW BINLOG EVENTS. More...
 
virtual const char * get_db ()
 
void * operator new (size_t size)
 
bool wrapper_my_b_safe_write (Basic_ostream *ostream, const uchar *buf, size_t data_length)
 Write the given buffer to the given output stream, updating the checksum if checksums are enabled. More...
 
time_t get_time ()
 
virtual bool write_data_header (Basic_ostream *)
 
virtual bool write_data_body (Basic_ostream *)
 
Log_event_type get_type_code () const
 
virtual bool is_sbr_logging_format () const
 Return true if the event has to be logged using SBR for DMLs. More...
 
virtual bool is_rbr_logging_format () const
 Return true if the event has to be logged using RBR for DMLs. More...
 
bool is_valid ()
 
void set_artificial_event ()
 
void set_relay_log_event ()
 
bool is_artificial_event () const
 
bool is_relay_log_event () const
 
bool is_ignorable_event () const
 
bool is_no_filter_event () const
 
bool is_using_trans_cache () const
 
bool is_using_stmt_cache () const
 
bool is_using_immediate_logging () const
 
 Log_event (Log_event_header *header, Log_event_footer *footer)
 
virtual ~Log_event ()
 
void register_temp_buf (char *buf, bool free_in_destructor=true)
 
void free_temp_buf ()
 
const char * get_type_str () const
 Returns the human readable name of this event's type. More...
 
bool is_mts_sequential_exec ()
 Is called from get_mts_execution_mode() to. More...
 
virtual uint8 get_mts_dbs (Mts_db_names *arg, Rpl_filter *rpl_filter[[maybe_unused]])
 The method fills in pointers to event's database name c-strings to a supplied array. More...
 
bool contains_partition_info (bool)
 
bool is_mts_group_isolated ()
 
virtual bool starts_group () const
 Events of a certain type can start or end a group of events treated transactionally wrt binlog. More...
 
int apply_event (Relay_log_info *rli)
 Apply the event to the database. More...
 
int apply_gtid_event (Relay_log_info *rli)
 Apply the GTID event in curr_group_data to the database. More...
 
int update_pos (Relay_log_info *rli)
 Update the relay log position. More...
 
enum_skip_reason shall_skip (Relay_log_info *rli)
 Decide if the event shall be skipped, and the reason for skipping it. More...
 
virtual int do_apply_event (Relay_log_info const *rli[[maybe_unused]])
 Primitive to apply an event to the database. More...
 
virtual int do_apply_event_worker (Slave_worker *w)
 

Private Attributes

Applier_context m_applier_ctx
 

Additional Inherited Members

- Public Types inherited from binary_log::Transaction_payload_event
enum  fields { OTW_PAYLOAD_HEADER_END_MARK = 0 , OTW_PAYLOAD_SIZE_FIELD = 1 , OTW_PAYLOAD_COMPRESSION_TYPE_FIELD = 2 , OTW_PAYLOAD_UNCOMPRESSED_SIZE_FIELD = 3 }
 The on-the-wire fields. More...
 
- Public Types inherited from binary_log::Binary_log_event
enum  enum_post_header_length {
  QUERY_HEADER_MINIMAL_LEN = (4 + 4 + 1 + 2) , QUERY_HEADER_LEN = (QUERY_HEADER_MINIMAL_LEN + 2) , STOP_HEADER_LEN = 0 , START_V3_HEADER_LEN = (2 + ST_SERVER_VER_LEN + 4) ,
  ROTATE_HEADER_LEN = 8 , INTVAR_HEADER_LEN = 0 , APPEND_BLOCK_HEADER_LEN = 4 , DELETE_FILE_HEADER_LEN = 4 ,
  RAND_HEADER_LEN = 0 , USER_VAR_HEADER_LEN = 0 , FORMAT_DESCRIPTION_HEADER_LEN = (START_V3_HEADER_LEN + 1 + LOG_EVENT_TYPES) , XID_HEADER_LEN = 0 ,
  BEGIN_LOAD_QUERY_HEADER_LEN = APPEND_BLOCK_HEADER_LEN , ROWS_HEADER_LEN_V1 = 8 , TABLE_MAP_HEADER_LEN = 8 , EXECUTE_LOAD_QUERY_EXTRA_HEADER_LEN = (4 + 4 + 4 + 1) ,
  EXECUTE_LOAD_QUERY_HEADER_LEN , INCIDENT_HEADER_LEN = 2 , HEARTBEAT_HEADER_LEN = 0 , IGNORABLE_HEADER_LEN = 0 ,
  ROWS_HEADER_LEN_V2 = 10 , TRANSACTION_CONTEXT_HEADER_LEN = 18 , VIEW_CHANGE_HEADER_LEN = 52 , XA_PREPARE_HEADER_LEN = 0 ,
  TRANSACTION_PAYLOAD_HEADER_LEN = 0
}
 The lengths for the fixed data part of each event. More...
 
- Public Types inherited from Log_event
enum  enum_skip_reason { EVENT_SKIP_NOT , EVENT_SKIP_IGNORE , EVENT_SKIP_COUNT }
 Enumeration of what kinds of skipping (and non-skipping) that can occur when the slave executes an event. More...
 
- Static Public Member Functions inherited from Log_event
static void init_show_field_list (mem_root_deque< Item * > *field_list)
 init_show_field_list() prepares the column names and types for the output of SHOW BINLOG EVENTS; it is used only by SHOW BINLOG EVENTS. More...
 
static void operator delete (void *ptr, size_t)
 
static void * operator new (size_t, void *ptr)
 
static void operator delete (void *, void *)
 
static const char * get_type_str (Log_event_type type)
 Returns the human readable name of the given event type. More...
 
- Public Attributes inherited from Log_event
char * temp_buf
 
bool m_free_temp_buf_in_destructor
 
ulong exec_time
 
uint32 server_id
 
ulong rbr_exec_mode
 A storage to cache the global system variable's value. More...
 
enum_event_cache_type event_cache_type
 Defines the type of the cache, if any, where the event will be stored before being flushed to disk. More...
 
enum_event_logging_type event_logging_type
 Defines when information, i.e. More...
 
ha_checksum crc
 Placeholder for event checksum while writing to binlog. More...
 
ulong mts_group_idx
 Index in rli->gaq array to indicate a group that this event is purging. More...
 
binary_log::Log_event_headercommon_header
 The Log_event_header class contains the variable present in the common header. More...
 
binary_log::Log_event_footercommon_footer
 The Log_event_footer class contains the variable present in the common footer. More...
 
Relay_log_infoworker
 MTS: associating the event with either an assigned Worker or Coordinator. More...
 
ulonglong future_event_relay_log_pos
 A copy of the main rli value stored into event to pass to MTS worker rli. More...
 
THDthd
 
db_worker_hash_entrymts_assigned_partitions [MAX_DBS_IN_EVENT_MTS]
 Partition info associate with event to deliver to MTS event applier. More...
 
- Static Public Attributes inherited from binary_log::Transaction_payload_event
static const unsigned short COMPRESSION_TYPE_MIN_LENGTH = 1
 
static const unsigned short COMPRESSION_TYPE_MAX_LENGTH = 9
 
static const unsigned short PAYLOAD_SIZE_MIN_LENGTH = 0
 
static const unsigned short PAYLOAD_SIZE_MAX_LENGTH = 9
 
static const unsigned short UNCOMPRESSED_SIZE_MIN_LENGTH = 0
 
static const unsigned short UNCOMPRESSED_SIZE_MAX_LENGTH = 9
 
static const int MAX_DATA_LENGTH
 
- Static Public Attributes inherited from binary_log::Binary_log_event
static const int LOG_EVENT_TYPES = (ENUM_END_EVENT - 1)
 
- Protected Types inherited from Log_event
enum  enum_event_cache_type {
  EVENT_INVALID_CACHE = 0 , EVENT_STMT_CACHE , EVENT_TRANSACTIONAL_CACHE , EVENT_NO_CACHE ,
  EVENT_CACHE_COUNT
}
 
enum  enum_event_logging_type { EVENT_INVALID_LOGGING = 0 , EVENT_NORMAL_LOGGING , EVENT_IMMEDIATE_LOGGING , EVENT_CACHE_LOGGING_COUNT }
 
- Protected Member Functions inherited from binary_log::Binary_log_event
 Binary_log_event (Log_event_type type_code)
 This constructor is used to initialize the type_code of header object m_header. More...
 
 Binary_log_event (const char **buf, const Format_description_event *fde)
 This constructor will create a new object of Log_event_header and initialize the variable m_header, which in turn will be used to initialize Log_event's member common_header. More...
 
- Protected Member Functions inherited from Log_event
uint32 write_header_to_memory (uchar *buf)
 Writes the common header of this event to the given memory buffer. More...
 
bool write_header (Basic_ostream *ostream, size_t data_length)
 Writes the common-header of this event to the given output stream and updates the checksum. More...
 
bool write_footer (Basic_ostream *ostream)
 
bool need_checksum ()
 A decider of whether to trigger checksum computation or not. More...
 
enum_skip_reason continue_group (Relay_log_info *rli)
 Helper function to ignore an event w.r.t. More...
 
virtual int do_update_pos (Relay_log_info *rli)
 Advance relay log coordinates. More...
 
- Protected Attributes inherited from binary_log::Transaction_payload_event
const char * m_payload {nullptr}
 The raw bytes which are the data that this event contains. More...
 
uint64_t m_payload_size {0}
 The size of the data. More...
 
transaction::compression::type m_compression_type
 If the data is compressed, which compression was used. More...
 
uint64_t m_uncompressed_size {0}
 The size of the data uncompressed. More...
 

Constructor & Destructor Documentation

◆ Transaction_payload_log_event() [1/4]

Transaction_payload_log_event::Transaction_payload_log_event ( THD thd_arg,
const char *  payload,
uint64_t  payload_size,
uint16_t  compression_type,
uint64_t  uncompressed_size 
)
inline

◆ Transaction_payload_log_event() [2/4]

Transaction_payload_log_event::Transaction_payload_log_event ( THD thd_arg,
const char *  payload,
uint64_t  payload_size 
)
inline

◆ Transaction_payload_log_event() [3/4]

Transaction_payload_log_event::Transaction_payload_log_event ( THD thd_arg)
inline

◆ Transaction_payload_log_event() [4/4]

Transaction_payload_log_event::Transaction_payload_log_event ( const char *  buf,
const Format_description_event fde 
)
inline

◆ ~Transaction_payload_log_event()

Transaction_payload_log_event::~Transaction_payload_log_event ( )
overridedefault

Member Function Documentation

◆ apply_payload_event()

bool Transaction_payload_log_event::apply_payload_event ( Relay_log_info const *  rli,
const uchar event_buf 
)

◆ do_apply_event()

int Transaction_payload_log_event::do_apply_event ( Relay_log_info const *  rli)
override

◆ do_shall_skip()

Log_event::enum_skip_reason Transaction_payload_log_event::do_shall_skip ( Relay_log_info rli)
overridevirtual

Decide if this event shall be skipped or not and the reason for skipping it.

The default implementation decide that the event shall be skipped if either:

  • the server id of the event is the same as the server id of the server and rli->replicate_same_server_id is true, or
  • if rli->slave_skip_counter is greater than zero.
See also
do_apply_event
do_update_pos
Return values
Log_event::EVENT_SKIP_NOTThe event shall not be skipped and should be applied.
Log_event::EVENT_SKIP_IGNOREThe event shall be skipped by just ignoring it, i.e., the slave skip counter shall not be changed. This happends if, for example, the originating server id of the event is the same as the server id of the slave.
Log_event::EVENT_SKIP_COUNTThe event shall be skipped because the slave skip counter was non-zero. The caller shall decrease the counter by one.

Reimplemented from Log_event.

◆ ends_group()

bool Transaction_payload_log_event::ends_group ( ) const
overridevirtual
Returns
true if the event ends a group (transaction) false otherwise

Reimplemented from Log_event.

◆ get_data_size()

size_t Transaction_payload_log_event::get_data_size ( )
overridevirtual

Reimplemented from Log_event.

◆ get_event_length()

size_t Transaction_payload_log_event::get_event_length ( )
inline

◆ get_mts_dbs()

uint8 Transaction_payload_log_event::get_mts_dbs ( Mts_db_names arg,
Rpl_filter rpl_filter 
)
override

◆ mts_number_dbs()

uint8 Transaction_payload_log_event::mts_number_dbs ( )
overridevirtual

Reimplemented from Log_event.

◆ pack_info()

int Transaction_payload_log_event::pack_info ( Protocol protocol)
overridevirtual

Stores a string representation of this event in the Protocol.

This is used by SHOW BINLOG EVENTS.

Return values
0success
nonzeroerror

Reimplemented from Log_event.

◆ set_mts_dbs()

void Transaction_payload_log_event::set_mts_dbs ( Mts_db_names arg)

◆ write()

bool Transaction_payload_log_event::write ( Basic_ostream ostream)
overridevirtual

Reimplemented from Log_event.

Member Data Documentation

◆ m_applier_ctx

Applier_context Transaction_payload_log_event::m_applier_ctx
private

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