| 
| 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...
  | 
|   | 
| 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.