|
enum | { TYPE_CODE = mysql::binlog::event::UPDATE_ROWS_EVENT
} |
|
enum | row_lookup_mode {
ROW_LOOKUP_UNDEFINED = 0
, ROW_LOOKUP_NOT_NEEDED = 1
, ROW_LOOKUP_INDEX_SCAN = 2
, ROW_LOOKUP_TABLE_SCAN = 3
,
ROW_LOOKUP_HASH_SCAN = 4
} |
|
enum | enum_error {
ERR_OPEN_FAILURE = -1
, ERR_OK = 0
, ERR_TABLE_LIMIT_EXCEEDED = 1
, ERR_OUT_OF_MEM = 2
,
ERR_BAD_TABLE_DEF = 3
, ERR_RBR_TO_SBR = 4
} |
| Enumeration of the errors that can be returned. More...
|
|
enum | { RLE_NO_FLAGS = 0U
} |
|
typedef uint16 | flag_set |
|
enum | enum_flag {
STMT_END_F = (1U << 0)
, NO_FOREIGN_KEY_CHECKS_F = (1U << 1)
, RELAXED_UNIQUE_CHECKS_F = (1U << 2)
, COMPLETE_ROWS_F = (1U << 3)
,
ALL_FLAGS
} |
| These definitions allow to combine the flags into an appropriate flag set using the normal bitwise operators. More...
|
|
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...
|
|
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...
|
|
enum | enum_mts_event_exec_mode { EVENT_EXEC_PARALLEL
, EVENT_EXEC_ASYNC
, EVENT_EXEC_SYNC
, EVENT_EXEC_CAN_NOT
} |
|
|
| Update_rows_log_event (THD *, TABLE *, const mysql::binlog::event::Table_id &table_id, MY_BITMAP const *cols_bi, MY_BITMAP const *cols_ai, bool is_transactional, const unsigned char *extra_row_ndb_info) |
|
| Update_rows_log_event (THD *, TABLE *, const mysql::binlog::event::Table_id &table_id, bool is_transactional, const unsigned char *extra_row_ndb_info) |
|
void | init (MY_BITMAP const *cols) |
|
| ~Update_rows_log_event () override |
|
| Update_rows_log_event (const char *buf, const mysql::binlog::event::Format_description_event *description_event) |
|
bool | read_write_bitmaps_cmp (const TABLE *table) const override |
| Compares the table's read/write_set with the columns included in this event's before-image and/or after-image. More...
|
|
void | claim_memory_ownership (bool claim) override |
| Allow thread to CLAIM or DISCLAIM the ownership of this object depends on the parameter value passed. More...
|
|
| Rows_log_event (Rows_log_event &&) noexcept=delete |
|
Rows_log_event & | operator= (Rows_log_event &&) noexcept=delete |
|
| Rows_log_event (const Rows_log_event &)=delete |
|
Rows_log_event & | operator= (const Rows_log_event &)=delete |
|
| ~Rows_log_event () override |
|
void | set_flags (flag_set flags_arg) |
|
void | clear_flags (flag_set flags_arg) |
|
flag_set | get_flags (flag_set flags_arg) const |
|
int | pack_info (Protocol *protocol) override |
| Stores a string representation of this event in the Protocol. More...
|
|
int | add_row_data (uchar *data, size_t length) |
|
size_t | get_data_size () override |
|
MY_BITMAP const * | get_cols () const |
|
MY_BITMAP const * | get_cols_ai () const |
|
const mysql::binlog::event::Table_id & | get_table_id () const |
|
bool | write_data_header (Basic_ostream *ostream) override |
|
bool | write_data_body (Basic_ostream *ostream) override |
|
const char * | get_db () override |
|
| Rows_event (Log_event_type type_arg) |
| Constructs an event directly. More...
|
|
| Rows_event (const char *buf, const Format_description_event *fde) |
| The constructor is responsible for decoding the event contained in the buffer. More...
|
|
| ~Rows_event () override |
|
unsigned long long | get_table_id () const |
|
enum_flag | get_flags () const |
|
uint32_t | get_null_bits_len () const |
|
unsigned long | get_width () const |
|
std::string | get_enum_flag_string () const |
| Gets the flags listed as strings. More...
|
|
virtual | ~Binary_log_event ()=0 |
|
| Binary_log_event (const Binary_log_event &)=default |
|
| Binary_log_event (Binary_log_event &&)=default |
|
Binary_log_event & | operator= (const Binary_log_event &)=default |
|
Binary_log_event & | operator= (Binary_log_event &&)=default |
|
enum Log_event_type | get_event_type () const |
| Helper method. More...
|
|
const Log_event_header * | header () const |
| Return a const pointer to the header of the log event. More...
|
|
Log_event_header * | header () |
| Return a non-const pointer to the header of the log event. More...
|
|
const Log_event_footer * | footer () const |
| Return a const pointer to the footer of the log event. More...
|
|
Log_event_footer * | footer () |
| Return a non-const pointer to the footer of the log event. More...
|
|
Event_reader & | reader () |
| Returns a reference to the event Event_reader object. More...
|
|
| Log_event (mysql::binlog::event::Log_event_header *header, mysql::binlog::event::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, mysql::binlog::event::Log_event_header *header, mysql::binlog::event::Log_event_footer *footer) |
|
int | net_send (Protocol *protocol, const char *log_name, my_off_t pos) |
| Only called by SHOW BINLOG EVENTS. More...
|
|
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...
|
|
virtual bool | write (Basic_ostream *ostream) |
|
time_t | get_time () |
| Prints a "session_var=value" string. More...
|
|
virtual mysql::binlog::event::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...
|
|
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 (mysql::binlog::event::Log_event_header *header, mysql::binlog::event::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 () const |
| Is called from get_mts_execution_mode() to. More...
|
|
virtual uint8 | get_mts_dbs (Mts_db_names *arg, Rpl_filter *rpl_filter) |
| The method fills in pointers to event's database name c-strings to a supplied array. More...
|
|
bool | contains_partition_info (bool) |
|
virtual uint8 | mts_number_dbs () |
|
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...
|
|
virtual bool | ends_group () const |
|
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_worker (Slave_worker *w) |
|
| Update_rows_event (const char *buf, const Format_description_event *fde) |
|
| Update_rows_event (Log_event_type event_type) |
|
|
static bool | binlog_row_logging_function (THD *thd, TABLE *table, bool is_transactional, const uchar *before_record, const uchar *after_record) |
|
static std::string | get_flag_string (enum_flag flag) |
| Gets a string describing the flags. More...
|
|
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 (mysql::binlog::event::Log_event_type type) |
| Returns the human readable name of the given event type. More...
|
|
static const char * | get_type_str (uint type) |
| Get the name of an event type, or "Unknown" if out of range. More...
|
|
static bool | is_mts_sequential_exec (mysql::binlog::event::Log_event_type type_code) |
|
static enum enum_mts_event_exec_mode | get_mts_execution_mode (bool mts_in_group, mysql::binlog::event::Log_event_type type_code, uint32 server_id, uint32 log_pos) |
|
|
mysql::binlog::event::Log_event_type | get_general_type_code () override |
|
int | do_before_row_operations (const Relay_log_info *const) override |
|
int | do_after_row_operations (const Relay_log_info *const, int) override |
|
int | do_exec_row (const Relay_log_info *const) override |
|
int | skip_after_image_for_update_event (const Relay_log_info *rli, const uchar *curr_bi_start) override |
| Seek past the after-image of an update event, in case a row was processed without reading the after-image. More...
|
|
| Rows_log_event (THD *, TABLE *, const mysql::binlog::event::Table_id &table_id, MY_BITMAP const *cols, bool is_transactional, mysql::binlog::event::Log_event_type event_type, const unsigned char *extra_row_ndb_info) |
|
| Rows_log_event (const char *row_data, const mysql::binlog::event::Format_description_event *description_event) |
|
virtual int | do_add_row_data (uchar *data, size_t length) |
|
int | unpack_current_row (const Relay_log_info *const rli, MY_BITMAP const *cols, bool is_after_image, bool only_seek=false) |
| Unpack the current row image from the event into m_table->record[0]. More...
|
|
int | update_generated_columns (MY_BITMAP const &fields_to_update) |
| Updates the generated columns of the TABLE object referenced by m_table , that have an active bit in the parameter bitset fields_to_update . More...
|
|
void | decide_row_lookup_algorithm_and_key () |
|
int | row_operations_scan_and_key_setup () |
|
int | row_operations_scan_and_key_teardown (int error) |
|
bool | is_auto_inc_in_extra_columns (const Relay_log_info *const rli) |
| Helper function to check whether there is an auto increment column on the table where the event is to be applied. More...
|
|
bool | is_rbr_logging_format () const override |
| Return true if the event has to be logged using RBR for DMLs. More...
|
|
| 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...
|
|
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...
|
|
|
uint | m_row_count |
|
Extra_row_info | m_extra_row_info |
|
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...
|
|
mysql::binlog::event::Log_event_header * | common_header |
| The Log_event_header class contains the variable present in the common header. More...
|
|
mysql::binlog::event::Log_event_footer * | common_footer |
| The Log_event_footer class contains the variable present in the common footer. More...
|
|
Relay_log_info * | worker |
| 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...
|
|
THD * | thd |
|
db_worker_hash_entry * | mts_assigned_partitions [MAX_DBS_IN_EVENT_MTS] |
| Partition info associate with event to deliver to MTS event applier. More...
|
|
static const int | LOG_EVENT_TYPES = (ENUM_END_EVENT - 1) |
|
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
} |
|
static bool | is_trx_retryable_upon_engine_error (int error) |
| Helper function to check whether the storage engine error allows for the transaction to be retried or not. More...
|
|
Rows_applier_psi_stage | m_psi_progress |
|
TABLE * | m_table |
|
MY_BITMAP | m_cols |
|
MY_BITMAP | m_local_cols |
| Bitmap denoting columns available in the image as they appear in the table setup. More...
|
|
Hash_slave_rows | m_hash |
| Hash table that will hold the entries for while using HASH_SCAN algorithm to search and update/delete rows. More...
|
|
uint | m_rows_lookup_algorithm |
| The algorithm to use while searching for rows using the before image. More...
|
|
MY_BITMAP | m_cols_ai |
| Bitmap for columns available in the after image, if present. More...
|
|
MY_BITMAP | m_local_cols_ai |
| Bitmap denoting columns available in the after-image as they appear in the table setup. More...
|
|
uint32 | m_bitbuf [128/(sizeof(uint32) *8)] |
|
uint32 | m_bitbuf_ai [128/(sizeof(uint32) *8)] |
|
uchar * | m_rows_buf |
|
uchar * | m_rows_cur |
|
uchar * | m_rows_end |
|
const uchar * | m_curr_row |
|
const uchar * | m_curr_row_end |
|
uchar * | m_key |
|
uint | m_key_index |
|
KEY * | m_key_info |
|
std::set< uchar *, Key_compare > | m_distinct_keys |
|
std::set< uchar *, Key_compare >::iterator | m_itr |
|
uchar * | m_distinct_key_spare_buf |
| A spare buffer which will be used when saving the distinct keys for doing an index scan with HASH_SCAN search algorithm. More...
|
|
Log_event_type | m_type |
|
Table_id | m_table_id |
| Actual event type. More...
|
|
uint16_t | m_flags |
|
unsigned long | m_width |
| Flags for row-level events. More...
|
|
uint32_t | n_bits_len |
| The width of the columns bitmap. More...
|
|
uint16_t | var_header_len |
| value determined by (m_width + 7) / 8 More...
|
|
std::vector< uint8_t > | columns_before_image |
|
std::vector< uint8_t > | columns_after_image |
|
std::vector< uint8_t > | row |
|
Log row updates with a before image.
The event contain several update rows for a table. Note that each event contains only rows for one table.
Also note that the row data consists of pairs of row data: one row for the old data and one row for the new data.