101#ifdef HAVE_PSI_STAGE_INTERFACE
122#if defined(MYSQL_SERVER)
130#if defined(MYSQL_SERVER)
133#define PREFIX_SQL_LOAD "SQL_LOAD-"
145#define TEMP_FILE_MAX_LEN UUID_LENGTH + 38
157#define ASSERT_OR_RETURN_ERROR(COND, ERRNO) \
159 if (!(COND)) return ERRNO; \
162#define ASSERT_OR_RETURN_ERROR(COND, ERRNO) assert(COND)
165#define LOG_EVENT_OFFSET 4
167#define NUM_LOAD_DELIM_STRS 5
190#define MAX_LOG_EVENT_HEADER \
192 (LOG_EVENT_HEADER_LEN + \
193 Binary_log_event::QUERY_HEADER_LEN + \
195 EXECUTE_LOAD_QUERY_EXTRA_HEADER_LEN) +
197 MAX_SIZE_LOG_EVENT_STATUS + \
206#define MAX_MAX_ALLOWED_PACKET 1024 * 1024 * 1024
210#define SL_MASTER_PORT_OFFSET 8
211#define SL_MASTER_POS_OFFSET 0
212#define SL_MASTER_HOST_OFFSET 10
217#define I_TYPE_OFFSET 0
218#define I_VAL_OFFSET 1
221#define BINLOG_MAGIC "\xfe\x62\x69\x6e"
222#define BINLOG_MAGIC_SIZE 4
253#define LOG_EVENT_THREAD_SPECIFIC_F 0x4
268#define LOG_EVENT_SUPPRESS_USE_F 0x8
285#define LOG_EVENT_ARTIFICIAL_F 0x20
293#define LOG_EVENT_RELAY_LOG_F 0x40
304#define LOG_EVENT_IGNORABLE_F 0x80
313#define LOG_EVENT_NO_FILTER_F 0x100
324#define LOG_EVENT_MTS_ISOLATE_F 0x200
349#define OPTIONS_WRITTEN_TO_BIN_LOG \
350 (OPTION_AUTO_IS_NULL | OPTION_NO_FOREIGN_KEY_CHECKS | \
351 OPTION_RELAXED_UNIQUE_CHECKS | OPTION_NOT_AUTOCOMMIT)
354#define EXPECTED_OPTIONS \
355 ((1ULL << 14) | (1ULL << 26) | (1ULL << 27) | (1ULL << 19))
357#if OPTIONS_WRITTEN_TO_BIN_LOG != EXPECTED_OPTIONS
358#error OPTIONS_WRITTEN_TO_BIN_LOG must NOT change their values!
360#undef EXPECTED_OPTIONS
394enum enum_base64_output_mode {
395 BASE64_OUTPUT_NEVER = 0,
396 BASE64_OUTPUT_AUTO = 1,
397 BASE64_OUTPUT_UNSPEC = 2,
398 BASE64_OUTPUT_DECODE_ROWS = 3,
400 BASE64_OUTPUT_MODE_COUNT
415struct PRINT_EVENT_INFO {
425 bool sql_mode_inited;
427 ulong auto_increment_increment, auto_increment_offset;
431 uint lc_time_names_number;
432 uint charset_database_number;
433 uint default_collation_for_utf8mb4_number;
434 uint8_t sql_require_primary_key;
436 bool thread_id_printed;
437 uint8_t default_table_encryption;
441 ~PRINT_EVENT_INFO() {
456 enum_base64_output_mode base64_output_mode;
466 bool printed_fd_event;
468 uint8 common_header_len;
485 bool have_unflushed_events;
495 bool skipped_event_in_transaction;
497 bool print_table_metadata;
505 bool require_row_format;
510 uint32_t immediate_server_version;
760 virtual const char *
get_db();
763 virtual void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const = 0;
767 void print_base64(
IO_CACHE *
file, PRINT_EVENT_INFO *print_event_info,
771 void *
operator new(
size_t size);
773 static void operator delete(
void *ptr, size_t) {
my_free(ptr); }
776 static void *
operator new(size_t,
void *ptr) {
return ptr; }
777 static void operator delete(
void *,
void *) {}
887#if defined(MYSQL_SERVER)
1090 virtual bool ends_group()
const {
return false; }
1131 DBUG_PRINT(
"info", (
"skip reason=%d=%s", ret,
1325 bool using_trans,
bool immediate,
bool suppress_use,
1326 int error,
bool ignore_command =
false);
1327 const char *
get_db()
override {
return db; }
1351 const char *db_filtered =
1370 PRINT_EVENT_INFO *print_event_info)
const;
1371 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
1372 static bool rewrite_db_in_buffer(
char **
buf, ulong *event_len,
1397#if defined(MYSQL_SERVER)
1462 const char **query_arg);
1465 return !strncmp(
query, pattern, p_len);
1531 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
1540 return Binary_log_event::FORMAT_DESCRIPTION_HEADER_LEN;
1544#if defined(MYSQL_SERVER)
1588 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
1605#if defined(MYSQL_SERVER)
1650 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
1664#if defined(MYSQL_SERVER)
1712 bool ends_group()
const override {
return true; }
1713#if defined(MYSQL_SERVER)
1731 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
1742#if defined(MYSQL_SERVER)
1790 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
1792#if defined(MYSQL_SERVER)
1824 char *val_arg, ulong val_len_arg,
Item_result type_arg,
1825 uint charset_number_arg,
uchar flags_arg,
1829 type_arg, charset_number_arg, flags_arg),
1837 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
1864#if defined(MYSQL_SERVER)
1885 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
1902#if defined(MYSQL_SERVER)
1948 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
1955 return ident_len + Binary_log_event::ROTATE_HEADER_LEN;
1962#if defined(MYSQL_SERVER)
1998 uint block_len_arg,
bool using_trans);
2002 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
2009 return block_len + Binary_log_event::APPEND_BLOCK_HEADER_LEN;
2013 const char *
get_db()
override {
return db; }
2019#if defined(MYSQL_SERVER)
2060 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
2061 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info,
bool enable_local);
2068 return Binary_log_event::DELETE_FILE_HEADER_LEN;
2072 const char *
get_db()
override {
return db; }
2078#if defined(MYSQL_SERVER)
2125 uint block_len_arg,
bool using_trans);
2134#if defined(MYSQL_SERVER)
2181 THD *
thd,
const char *query_arg, ulong query_length,
2182 uint fn_pos_start_arg,
uint fn_pos_end_arg,
2184 bool immediate,
bool suppress_use,
int errcode);
2187 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
2190 const char *local_fname)
const;
2204#if defined(MYSQL_SERVER)
2209#if defined MYSQL_SERVER
2213 const char *table_name_arg,
bool is_concurrent_arg,
2246 Unknown_log_event(
const char *
buf,
2252 common_header->set_is_valid(
true);
2256 ~Unknown_log_event()
override =
default;
2257 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
2263char *
str_to_hex(
char *to,
const char *from,
size_t len);
2330 bool is_transactional);
2343 static bool rewrite_db_in_buffer(
char **
buf, ulong *event_len,
2385#if defined(MYSQL_SERVER)
2390 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
2402 const Optional_metadata_fields &fields)
const;
2413 const Optional_metadata_fields &fields)
const;
2421#if defined(MYSQL_SERVER)
2481 class Charset_iterator;
2482 class Default_charset_iterator;
2483 class Column_charset_iterator;
2487#ifdef HAVE_PSI_STAGE_INTERFACE
2539 if (estimated == 0) {
2540 assert(cursor > begin);
2542 estimated = (
end - begin) / avg_row_change_size;
2608#ifdef HAVE_PSI_STAGE_INTERFACE
2648#if defined(MYSQL_SERVER)
2653 void print_verbose(
IO_CACHE *
file, PRINT_EVENT_INFO *print_event_info);
2655 PRINT_EVENT_INFO *print_event_info,
2657 const uchar *prefix,
2674#if defined(MYSQL_SERVER)
2705 MY_BITMAP const *cols,
bool is_transactional,
2707 const unsigned char *extra_row_ndb_info);
2713 void print_helper(
FILE *, PRINT_EVENT_INFO *)
const;
2774#if defined(MYSQL_SERVER)
2795 return key_cmp2((*m_key_info)->key_part, k1, (*m_key_info)->key_length,
2796 k2, (*m_key_info)->key_length) < 0;
2803 std::set<uchar *, Key_compare>::iterator
m_itr;
2832 bool is_after_image,
bool only_seek =
false);
2893#if defined(MYSQL_SERVER)
3030 const uchar *curr_bi_start
3150#if defined(MYSQL_SERVER)
3152 bool is_transactional,
3153 const unsigned char *extra_row_ndb_info);
3157#if defined(MYSQL_SERVER)
3159 bool is_transactional,
3160 const uchar *before_record
3177 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
3180#if defined(MYSQL_SERVER)
3238 bool is_transactional,
3239 const unsigned char *extra_row_ndb_info);
3242 bool is_transactional,
3243 const unsigned char *extra_row_ndb_info);
3255 bool is_transactional,
3256 const uchar *before_record,
3270 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
3273#if defined(MYSQL_SERVER)
3279 const uchar *curr_bi_start)
override;
3292 const THD *thd_arg);
3353 const unsigned char *extra_row_ndb_info);
3359 bool is_transactional,
3360 const uchar *before_record,
3361 const uchar *after_record
3374 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
3377#if defined(MYSQL_SERVER)
3422 DBUG_PRINT(
"enter", (
"incident: %d", incident_arg));
3435 DBUG_PRINT(
"enter", (
"incident: %d", incident_arg));
3461 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
3464#if defined(MYSQL_SERVER)
3471 return Binary_log_event::INCIDENT_HEADER_LEN + 1 +
message_length;
3474 bool ends_group()
const override {
return true; }
3527 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
3531 return Binary_log_event::IGNORABLE_HEADER_LEN;
3600 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
3603 return Binary_log_event::IGNORABLE_HEADER_LEN + 1 + strlen(
m_rows_query);
3609 bool flush_stream) {
3611 (flush_stream ? (fflush(
file) || ferror(
file)) : 0) ||
3670 uint64_t payload_size,
3671 uint16_t compression_type,
3672 uint64_t uncompressed_size)
3679 uint64_t payload_size)
3681 thd_arg, payload, payload_size,
3695 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
3701#if defined(MYSQL_SERVER)
3749 int64 sequence_number_arg,
bool may_have_sbr_stmts_arg,
3750 ulonglong original_commit_timestamp_arg,
3751 ulonglong immediate_commit_timestamp_arg,
3752 uint32_t original_server_version_arg,
3753 uint32_t immediate_server_version_arg);
3760 int64 last_committed_arg,
int64 sequence_number_arg,
3761 bool may_have_sbr_stmts_arg,
3762 ulonglong original_commit_timestamp_arg,
3763 ulonglong immediate_commit_timestamp_arg,
3765 uint32_t original_server_version_arg,
3766 uint32_t immediate_server_version_arg);
3834 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
3837#if defined(MYSQL_SERVER)
3926 bool is_checksum_enabled =
false,
3927 int event_counter = 0);
3972 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
3985 (
"skip writing Previous_gtids_log_event because of"
3986 "debug option 'skip_writing_previous_gtids_log_event'"));
3997 (
"writing partial Previous_gtids_log_event because of"
3998 "debug option 'write_partial_previous_gtids_log_event'"));
4030#if defined(MYSQL_SERVER)
4094 bool is_gtid_specified_arg);
4111 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
4114#if defined(MYSQL_SERVER)
4209 std::map<std::string, std::string> *
map);
4229 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
4232#if defined(MYSQL_SERVER)
4253 size_t *event_size);
4337template <
class EVENT>
4339 return ev->write(ostream);
4347 const char *identifier,
size_t length);
4352 const char *identifier,
4373template <
typename T>
int64 query_id_t
Definition: binlog.h:71
Contains the classes representing events occurring in the replication stream.
#define LOG_EVENT_HEADER_LEN
Definition: binlog_event.h:406
This event is created to contain the file data.
Definition: log_event.h:1993
Append_block_log_event(THD *thd, const char *db_arg, uchar *block_arg, uint block_len_arg, bool using_trans)
Definition: log_event.cc:6938
bool write(Basic_ostream *ostream) override
Definition: log_event.cc:6968
virtual int get_create_or_append() const
Definition: log_event.cc:7013
bool is_sbr_logging_format() const override
Return true if the event has to be logged using SBR for DMLs.
Definition: log_event.h:2015
size_t get_data_size() override
Definition: log_event.h:2007
int pack_info(Protocol *protocol) override
Stores a string representation of this event in the Protocol.
Definition: log_event.cc:7000
~Append_block_log_event() override=default
const char * get_db() override
Definition: log_event.h:2012
int do_apply_event(Relay_log_info const *rli) override
Primitive to apply an event to the database.
Definition: log_event.cc:7043
The abstract class for basic output streams which provides write operation.
Definition: basic_ostream.h:34
Event for the first block of file to be loaded, its only difference from Append_block event is that t...
Definition: log_event.h:2120
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.
Definition: log_event.cc:7254
~Begin_load_query_log_event() override=default
int get_create_or_append() const override
Definition: log_event.cc:7250
Begin_load_query_log_event(THD *thd_arg, const char *db_arg, uchar *block_arg, uint block_len_arg, bool using_trans)
Definition: log_event.cc:7226
Delete_file_log_event is created when the LOAD_DATA query fails on the master for some reason,...
Definition: log_event.h:2053
int do_apply_event(Relay_log_info const *rli) override
Primitive to apply an event to the database.
Definition: log_event.cc:7199
size_t get_data_size() override
Definition: log_event.h:2066
~Delete_file_log_event() override=default
bool is_sbr_logging_format() const override
Return true if the event has to be logged using SBR for DMLs.
Definition: log_event.h:2074
bool write(Basic_ostream *ostream) override
Definition: log_event.cc:7159
const char * get_db() override
Definition: log_event.h:2071
Delete_file_log_event(THD *thd, const char *db_arg, bool using_trans)
Definition: log_event.cc:7132
int pack_info(Protocol *protocol) override
Stores a string representation of this event in the Protocol.
Definition: log_event.cc:7187
Log row deletions.
Definition: log_event.h:3343
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 aft...
Definition: log_event.h:3362
@ TYPE_CODE
Definition: log_event.h:3347
Delete_rows_log_event(THD *, TABLE *, const Table_id &, bool is_transactional, const unsigned char *extra_row_ndb_info)
Definition: log_event.cc:12336
static bool binlog_row_logging_function(THD *thd, TABLE *table, bool is_transactional, const uchar *before_record, const uchar *after_record)
Definition: log_event.cc:12352
int do_after_row_operations(const Relay_log_info *const, int) override
Definition: log_event.cc:12397
Log_event_type get_general_type_code() override
Definition: log_event.h:3368
int do_exec_row(const Relay_log_info *const) override
Definition: log_event.cc:12404
int do_before_row_operations(const Relay_log_info *const) override
Definition: log_event.cc:12374
Event responsible for LOAD DATA execution, it similar to Query_log_event but before executing the que...
Definition: log_event.h:2176
int do_apply_event(Relay_log_info const *rli) override
Primitive to apply an event to the database.
Definition: log_event.cc:7401
bool is_sbr_logging_format() const override
When a query log event contains a non-transaction control statement, we assume that it is changing da...
Definition: log_event.h:2200
bool write_post_header_for_derived(Basic_ostream *ostream) override
Definition: log_event.cc:7311
Execute_load_query_log_event(THD *thd, const char *query_arg, ulong query_length, uint fn_pos_start_arg, uint fn_pos_end_arg, binary_log::enum_load_dup_handling dup_handling_arg, bool using_trans, bool immediate, bool suppress_use, int errcode)
Definition: log_event.cc:7267
int pack_info(Protocol *protocol) override
This (which is used only for SHOW BINLOG EVENTS) could be updated to print SET @session_var=.
Definition: log_event.cc:7370
ulong get_post_header_size_for_derived() override
Definition: log_event.cc:7306
~Execute_load_query_log_event() override=default
This is a subclass if Gtid_event and Log_event.
Definition: log_event.h:3741
rpl_gno get_gno() const override
Return the GNO for this GTID.
Definition: log_event.h:3882
rpl_sidno get_sidno(bool need_lock)
Return the SIDNO relative to the global sid_map for this GTID.
Definition: log_event.cc:13384
const rpl_sid * get_sid() const
Return the SID for this GTID.
Definition: log_event.h:3852
rpl_sid sid
SID for this GTID.
Definition: log_event.h:3902
~Gtid_log_event() override=default
bool write_data_header(Basic_ostream *ostream) override
Writes the post-header to the given output stream.
Definition: log_event.cc:13096
size_t get_event_length()
Definition: log_event.h:3783
int do_update_pos(Relay_log_info *rli) override
Advance relay log coordinates.
Definition: log_event.cc:13316
enum_gtid_type get_type() const
Return the gtid type for this Gtid_log_event: this can be either ANONYMOUS_GTID, AUTOMATIC_GTID,...
Definition: log_event.h:3846
uint32 write_body_to_memory(uchar *buff)
Writes the body to the given memory buffer.
Definition: log_event.cc:13103
int do_apply_event(Relay_log_info const *rli) override
Primitive to apply an event to the database.
Definition: log_event.cc:13174
uint32 write_post_header_to_memory(uchar *buffer)
Writes the post-header to the given memory buffer.
Definition: log_event.cc:13043
static const size_t SET_STRING_PREFIX_LENGTH
Length of SET_STRING_PREFIX.
Definition: log_event.h:3889
bool write_data_body(Basic_ostream *ostream) override
Definition: log_event.cc:13165
void set_trx_length_by_cache_size(ulonglong cache_size, bool is_checksum_enabled=false, int event_counter=0)
Set the transaction length information based on binlog cache size.
Definition: log_event.cc:13335
static const size_t MAX_SET_STRING_LENGTH
The maximal length of the entire "SET ..." query.
Definition: log_event.h:3891
static const char * SET_STRING_PREFIX
string holding the text "SET @@GLOBAL.GTID_NEXT = '"
Definition: log_event.h:3885
Gtid_specification spec
Internal representation of the GTID.
Definition: log_event.h:3900
int pack_info(Protocol *) override
Stores a string representation of this event in the Protocol.
Definition: log_event.cc:12949
size_t get_data_size() override
Definition: log_event.h:3776
size_t to_string(char *buf) const
Used internally by both print() and pack_info().
Definition: log_event.cc:12957
Gtid_log_event(THD *thd_arg, bool using_trans, int64 last_committed_arg, int64 sequence_number_arg, bool may_have_sbr_stmts_arg, ulonglong original_commit_timestamp_arg, ulonglong immediate_commit_timestamp_arg, uint32_t original_server_version_arg, uint32_t immediate_server_version_arg)
Create a new event using the GTID owned by the given thread.
Definition: log_event.cc:12857
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.
Definition: log_event.cc:13330
Represents a set of GTIDs.
Definition: rpl_gtid.h:1454
Definition: rpl_utility.h:108
Definition: log_event.h:3632
Heartbeat_log_event_v2(const char *buf, const Format_description_event *description_event)
Definition: log_event.cc:14216
Definition: log_event.h:3625
Heartbeat_log_event(const char *buf, const Format_description_event *description_event)
Definition: log_event.cc:14209
Base class for ignorable log events is Ignorable_event.
Definition: log_event.h:3505
Ignorable_log_event(THD *thd_arg)
Definition: log_event.h:3508
int pack_info(Protocol *) override
Stores a string representation of this event in the Protocol.
Definition: log_event.cc:12723
size_t get_data_size() override
Definition: log_event.h:3529
~Ignorable_log_event() override
Class representing an incident, an occurrence out of the ordinary, that happened on the master.
Definition: log_event.h:3413
bool write_data_header(Basic_ostream *ostream) override
Definition: log_event.cc:12673
size_t get_data_size() override
Definition: log_event.h:3469
Incident_log_event(THD *thd_arg, enum_incident incident_arg)
Definition: log_event.h:3416
bool write_data_body(Basic_ostream *ostream) override
Definition: log_event.cc:12699
~Incident_log_event() override
Definition: log_event.cc:12592
int do_apply_event(Relay_log_info const *rli) override
Primitive to apply an event to the database.
Definition: log_event.cc:12633
int pack_info(Protocol *) override
Stores a string representation of this event in the Protocol.
Definition: log_event.cc:12606
const char * description() const
Definition: log_event.cc:12596
bool ends_group() const override
Definition: log_event.h:3473
The class derives from the class Intvar_event in Binlog API, defined in the header binlog_event....
Definition: log_event.h:1574
bool write(Basic_ostream *ostream) override
Definition: log_event.cc:5810
~Intvar_log_event() override=default
size_t get_data_size() override
Definition: log_event.h:1593
Intvar_log_event(THD *thd_arg, uchar type_arg, ulonglong val_arg, enum_event_cache_type cache_type_arg, enum_event_logging_type logging_type_arg)
Definition: log_event.h:1577
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.
Definition: log_event.cc:5884
int pack_info(Protocol *protocol) override
Stores a string representation of this event in the Protocol.
Definition: log_event.cc:5785
bool is_sbr_logging_format() const override
Return true if the event has to be logged using SBR for DMLs.
Definition: log_event.h:1601
int do_apply_event(Relay_log_info const *rli) override
Primitive to apply an event to the database.
Definition: log_event.cc:5859
int do_update_pos(Relay_log_info *rli) override
Advance relay log coordinates.
Definition: log_event.cc:5879
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:850
Definition: sql_list.h:433
Definition: log_event.h:2209
bool has_replace
Definition: log_event.h:2229
const size_t BUF_SIZE
Definition: log_event.h:2218
const char * table_name
Definition: log_event.h:2225
const char * fname
Definition: log_event.h:2226
const sql_exchange * sql_ex
Definition: log_event.h:2223
THD * thd
Definition: log_event.h:2222
bool has_ignore
Definition: log_event.h:2230
String str
Definition: log_event.h:2219
const char * db
Definition: log_event.h:2224
bool is_concurrent
Definition: log_event.h:2228
const String * generate(size_t *fn_start, size_t *fn_end)
Definition: log_event.cc:7510
Load_query_generator(THD *thd_arg, const sql_exchange *ex, const char *db_arg, const char *table_name_arg, bool is_concurrent_arg, bool replace, bool ignore)
Definition: log_event.cc:7493
This is the abstract base class for binary log events.
Definition: log_event.h:547
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.
Definition: log_event.cc:1285
ulong mts_group_idx
Index in rli->gaq array to indicate a group that this event is purging.
Definition: log_event.h:702
bool is_mts_sequential_exec()
Is called from get_mts_execution_mode() to.
Definition: log_event.h:900
binary_log::Log_event_footer * common_footer
The Log_event_footer class contains the variable present in the common footer.
Definition: log_event.h:714
bool is_using_stmt_cache() const
Definition: log_event.h:846
enum_skip_reason continue_group(Relay_log_info *rli)
Helper function to ignore an event w.r.t.
Definition: log_event.cc:2470
bool is_no_filter_event() const
Definition: log_event.h:840
int apply_event(Relay_log_info *rli)
Apply the event to the database.
Definition: log_event.cc:3065
virtual int do_apply_event(Relay_log_info const *rli)
Primitive to apply an event to the database.
Definition: log_event.h:1152
virtual const char * get_db()
Definition: log_event.cc:1097
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.
Definition: log_event.h:685
int net_send(Protocol *protocol, const char *log_name, my_off_t pos)
Only called by SHOW BINLOG EVENTS.
Definition: log_event.cc:1102
uint32 write_header_to_memory(uchar *buf)
Writes the common header of this event to the given memory buffer.
Definition: log_event.cc:1249
virtual bool starts_group() const
Events of a certain type can start or end a group of events treated transactionally wrt binlog.
Definition: log_event.h:1084
uint32 server_id
Definition: log_event.h:673
enum_mts_event_exec_mode
Definition: log_event.h:920
@ EVENT_EXEC_PARALLEL
Definition: log_event.h:924
@ EVENT_EXEC_SYNC
Definition: log_event.h:932
@ EVENT_EXEC_CAN_NOT
Definition: log_event.h:936
@ EVENT_EXEC_ASYNC
Definition: log_event.h:928
enum_skip_reason shall_skip(Relay_log_info *rli)
Decide if the event shall be skipped, and the reason for skipping it.
Definition: log_event.h:1127
bool is_valid()
Definition: log_event.cc:1338
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.
Definition: log_event.h:1046
ha_checksum crc
Placeholder for event checksum while writing to binlog.
Definition: log_event.h:695
virtual size_t get_data_size()
Definition: log_event.h:875
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.
Definition: log_event.cc:1227
enum_event_cache_type
Definition: log_event.h:576
@ EVENT_CACHE_COUNT
Definition: log_event.h:598
@ EVENT_INVALID_CACHE
Definition: log_event.h:577
@ EVENT_NO_CACHE
Definition: log_event.h:594
@ EVENT_STMT_CACHE
Definition: log_event.h:583
@ EVENT_TRANSACTIONAL_CACHE
Definition: log_event.h:589
enum_skip_reason
Enumeration of what kinds of skipping (and non-skipping) that can occur when the slave executes an ev...
Definition: log_event.h:556
@ EVENT_SKIP_IGNORE
Skip event by ignoring it.
Definition: log_event.h:567
@ EVENT_SKIP_COUNT
Skip event and decrease skip counter.
Definition: log_event.h:572
@ EVENT_SKIP_NOT
Don't skip event.
Definition: log_event.h:560
bool m_free_temp_buf_in_destructor
Definition: log_event.h:664
bool contains_partition_info(bool)
Definition: log_event.cc:2490
bool is_relay_log_event() const
Definition: log_event.h:834
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.
Definition: log_event.cc:974
bool is_ignorable_event() const
Definition: log_event.h:837
ulonglong future_event_relay_log_pos
A copy of the main rli value stored into event to pass to MTS worker rli.
Definition: log_event.h:725
virtual Log_event_type get_type_code() const
Definition: log_event.h:804
int update_pos(Relay_log_info *rli)
Update the relay log position.
Definition: log_event.h:1119
virtual int do_apply_event_worker(Slave_worker *w)
Definition: log_event.cc:1022
void set_artificial_event()
Definition: log_event.h:822
const char * get_type_str() const
Returns the human readable name of this event's type.
Definition: log_event.cc:938
time_t get_time()
Prints a "session_var=value" string.
Definition: log_event.cc:849
bool write_footer(Basic_ostream *ostream)
Definition: log_event.cc:1236
Relay_log_info * worker
MTS: associating the event with either an assigned Worker or Coordinator.
Definition: log_event.h:720
bool is_using_trans_cache() const
Definition: log_event.h:843
enum enum_mts_event_exec_mode get_mts_execution_mode(bool mts_in_group)
MTS Coordinator finds out a way how to execute the current event.
Definition: log_event.h:954
virtual enum_skip_reason do_shall_skip(Relay_log_info *rli)
Decide if this event shall be skipped or not and the reason for skipping it.
Definition: log_event.cc:1044
db_worker_hash_entry * mts_assigned_partitions[MAX_DBS_IN_EVENT_MTS]
Partition info associate with event to deliver to MTS event applier.
Definition: log_event.h:732
virtual bool write(Basic_ostream *ostream)
Definition: log_event.h:792
ulong rbr_exec_mode
A storage to cache the global system variable's value.
Definition: log_event.h:679
virtual void set_mts_isolate_group()
Definition: log_event.h:1026
THD * thd
Definition: log_event.h:728
int apply_gtid_event(Relay_log_info *rli)
Apply the GTID event in curr_group_data to the database.
Definition: log_event.cc:3021
virtual bool write_data_body(Basic_ostream *)
Definition: log_event.h:801
void register_temp_buf(char *buf, bool free_in_destructor=true)
Definition: log_event.h:861
virtual uint8 mts_number_dbs()
Definition: log_event.h:1063
void free_temp_buf()
Definition: log_event.h:865
bool is_mts_group_isolated()
Definition: log_event.h:1070
ulong exec_time
Definition: log_event.h:667
virtual bool is_rbr_logging_format() const
Return true if the event has to be logged using RBR for DMLs.
Definition: log_event.h:815
virtual ~Log_event()
Definition: log_event.h:860
enum_event_logging_type event_logging_type
Defines when information, i.e.
Definition: log_event.h:691
enum_event_logging_type
Definition: log_event.h:601
@ EVENT_NORMAL_LOGGING
Definition: log_event.h:607
@ EVENT_IMMEDIATE_LOGGING
Definition: log_event.h:612
@ EVENT_INVALID_LOGGING
Definition: log_event.h:602
@ EVENT_CACHE_LOGGING_COUNT
Definition: log_event.h:616
binary_log::Log_event_header * common_header
The Log_event_header class contains the variable present in the common header.
Definition: log_event.h:708
char * temp_buf
Definition: log_event.h:657
virtual bool is_sbr_logging_format() const
Return true if the event has to be logged using SBR for DMLs.
Definition: log_event.h:811
virtual int pack_info(Protocol *protocol)
Stores a string representation of this event in the Protocol.
Definition: log_event.cc:1092
bool is_using_immediate_logging() const
Definition: log_event.h:849
void set_relay_log_event()
Definition: log_event.h:830
virtual bool write_data_header(Basic_ostream *)
Definition: log_event.h:800
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 i...
Definition: log_event.cc:1125
bool is_artificial_event() const
Definition: log_event.h:831
virtual int do_update_pos(Relay_log_info *rli)
Advance relay log coordinates.
Definition: log_event.cc:1036
virtual bool ends_group() const
Definition: log_event.h:1089
bool need_checksum()
A decider of whether to trigger checksum computation or not.
Definition: log_event.cc:1154
Slave_worker * get_slave_worker(Relay_log_info *rli)
The method maps the event to a Worker and return a pointer to it.
Definition: log_event.cc:2618
This is the subclass of Previous_gtids_event and Log_event It is used to record the gtid_executed in ...
Definition: log_event.h:3954
bool write_data_body(Basic_ostream *ostream) override
Definition: log_event.cc:13480
int do_update_pos(Relay_log_info *rli) override
Advance relay log coordinates.
Definition: log_event.cc:13487
char * get_str(size_t *length, const Gtid_set::String_format *string_format) const
Return the formatted string, or NULL on error.
Definition: log_event.cc:13461
int pack_info(Protocol *) override
Stores a string representation of this event in the Protocol.
Definition: log_event.cc:13424
int do_apply_event(Relay_log_info const *) override
Primitive to apply an event to the database.
Definition: log_event.h:4035
int add_to_set(Gtid_set *gtid_set) const
Add all GTIDs from this event to the given Gtid_set.
Definition: log_event.cc:13450
size_t get_data_size() override
Definition: log_event.h:3968
Previous_gtids_log_event(const Gtid_set *set)
Definition: log_event.cc:13404
enum_skip_reason do_shall_skip(Relay_log_info *) override
Decide if this event shall be skipped or not and the reason for skipping it.
Definition: log_event.h:4030
bool write(Basic_ostream *ostream) override
Definition: log_event.h:3974
~Previous_gtids_log_event() override=default
const uchar * get_buf()
Return the encoded buffer, or NULL on error.
Definition: log_event.h:4011
Definition: protocol.h:32
A Query event is written to the binary log whenever the database is modified on the master,...
Definition: log_event.h:1275
int do_update_pos(Relay_log_info *rli) override
Advance relay log coordinates.
Definition: log_event.cc:5112
bool need_sql_require_primary_key
Whether or not the statement represented by this event requires Q_SQL_REQUIRE_PRIMARY_KEY to be logge...
Definition: log_event.h:1470
bool is_sbr_logging_format() const override
When a query log event contains a non-transaction control statement, we assume that it is changing da...
Definition: log_event.h:1440
bool is_trans_keyword() const
Definition: log_event.h:1408
bool m_skip_temp_tables_handling_by_worker
Instructs the applier to skip temporary tables handling.
Definition: log_event.h:1313
Query_log_event()
The simplest constructor that could possibly work.
Definition: log_event.cc:3647
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.
Definition: log_event.cc:5126
virtual ulong get_post_header_size_for_derived()
Definition: log_event.h:1392
bool starts_group() const override
Notice, DDL queries are logged without BEGIN/COMMIT parentheses and identification of such single-que...
Definition: log_event.h:1448
uchar mts_number_dbs() override
Definition: log_event.h:1364
my_thread_id slave_proxy_id
Definition: log_event.h:1286
void set_skip_temp_tables_handling_by_worker()
Definition: log_event.h:1315
bool has_ddl_committed
The flag indicates whether the DDL query has been (already) committed or not.
Definition: log_event.h:1306
int do_apply_event(Relay_log_info const *rli) override
Primitive to apply an event to the database.
Definition: log_event.cc:4393
~Query_log_event() override
Definition: log_event.h:1380
void attach_temp_tables_worker(THD *, const Relay_log_info *)
Associating slave Worker thread to a subset of temporary tables.
Definition: log_event.cc:4370
bool write(Basic_ostream *ostream) override
Query_log_event::write().
Definition: log_event.cc:3355
bool rollback_injected_by_coord
True if this is a ROLLBACK event injected by the mts coordinator to finish a group corresponding to a...
Definition: log_event.h:1294
bool is_query_prefix_match(const char *pattern, uint p_len)
Definition: log_event.h:1463
uint8 get_mts_dbs(Mts_db_names *arg, Rpl_filter *rpl_filter) override
Definition: log_event.h:1339
bool needs_default_table_encryption
Whether or not the statement represented by this event requires Q_DEFAULT_TABLE_ENCRYPTION to be logg...
Definition: log_event.h:1474
static size_t get_query(const char *buf, size_t length, const Format_description_event *fd_event, const char **query_arg)
Return the query string pointer (and its size) from a Query log event using only the event buffer (we...
Definition: log_event.cc:5162
const char * get_db() override
Definition: log_event.h:1326
int pack_info(Protocol *protocol) override
This (which is used only for SHOW BINLOG EVENTS) could be updated to print SET @session_var=.
Definition: log_event.cc:3304
Log_event_header::Byte * data_buf
Definition: log_event.h:1277
bool ends_group() const override
Definition: log_event.h:1453
bool is_skip_temp_tables_handling_by_worker()
Definition: log_event.h:1319
virtual bool write_post_header_for_derived(Basic_ostream *)
Definition: log_event.h:1385
void detach_temp_tables_worker(THD *, const Relay_log_info *)
Dissociating slave Worker thread from its thd->temporary_tables to possibly update the involved entri...
Definition: log_event.cc:4384
Logs random seed used by the next RAND(), and by PASSWORD() in 4.1.0.
Definition: log_event.h:1636
bool write(Basic_ostream *ostream) override
Definition: log_event.cc:5920
bool is_sbr_logging_format() const override
Return true if the event has to be logged using SBR for DMLs.
Definition: log_event.h:1660
~Rand_log_event() override=default
size_t get_data_size() override
Definition: log_event.h:1655
Rand_log_event(THD *thd_arg, ulonglong seed1_arg, ulonglong seed2_arg, enum_event_cache_type cache_type_arg, enum_event_logging_type logging_type_arg)
Definition: log_event.h:1639
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.
Definition: log_event.cc:5965
int do_apply_event(Relay_log_info const *rli) override
Primitive to apply an event to the database.
Definition: log_event.cc:5946
int pack_info(Protocol *protocol) override
Stores a string representation of this event in the Protocol.
Definition: log_event.cc:5901
int do_update_pos(Relay_log_info *rli) override
Advance relay log coordinates.
Definition: log_event.cc:5960
Definition: rpl_rli.h:202
This will be deprecated when we move to using sequence ids.
Definition: log_event.h:1940
int do_update_pos(Relay_log_info *rli) override
Advance relay log coordinates.
Definition: log_event.cc:5618
int pack_info(Protocol *protocol) override
Stores a string representation of this event in the Protocol.
Definition: log_event.cc:5511
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.
Definition: log_event.cc:5761
~Rotate_log_event() override=default
Rotate_log_event(const char *new_log_ident_arg, size_t ident_len_arg, ulonglong pos_arg, uint flags)
Definition: log_event.cc:5547
bool write(Basic_ostream *ostream) override
Definition: log_event.cc:5589
size_t get_data_size() override
Definition: log_event.h:1953
Definition: log_event.h:2490
bool is_enabled()
If instrumentation is enabled this member function SHALL return true.
Definition: log_event.h:2517
Rows_applier_psi_stage & operator=(const Rows_applier_psi_stage &rhs)
void inc_n_rows_applied(ulonglong delta)
Updates the counter of processed rows.
Definition: log_event.h:2563
ulonglong m_n_rows_applied
Counter that is unconditionally incremented on each row that is processed.
Definition: log_event.h:2505
ulonglong get_n_rows_applied()
Gets the value of the counter of rows that have been processed.
Definition: log_event.h:2569
Rows_applier_psi_stage()
Definition: log_event.h:2508
void update_work_estimated_and_completed(const uchar *cursor, const uchar *begin, const uchar *end)
This member function shall update the progress and reestimate the remaining work needed.
Definition: log_event.h:2530
void set_progress(PSI_stage_progress *progress)
Definition: log_event.h:2510
void end_work()
Resets this object.
Definition: log_event.h:2554
PSI_stage_progress * m_progress
A cached pointer to this stage PSI_stage_progress.
Definition: log_event.h:2498
Definition: log_event.h:2779
KEY ** m_key_info
Definition: log_event.h:2799
Key_compare(KEY **ki=nullptr)
Definition: log_event.h:2792
bool operator()(uchar *k1, uchar *k2) const
Definition: log_event.h:2793
Common base class for all row-containing log events.
Definition: log_event.h:2606
MY_BITMAP write_set_backup
This bitmap is used as a backup for the write set while we calculate the values for any hidden genera...
Definition: log_event.h:3102
uint32 m_bitbuf[128/(sizeof(uint32) *8)]
Definition: log_event.h:2760
virtual Log_event_type get_general_type_code()=0
uchar * m_rows_end
Definition: log_event.h:2769
int close_record_scan()
Does the cleanup.
Definition: log_event.cc:8784
int handle_idempotent_and_ignored_errors(Relay_log_info const *rli, int *err)
Private member function called while handling idempotent errors.
Definition: log_event.cc:8729
bool write_data_header(Basic_ostream *ostream) override
Definition: log_event.cc:10324
virtual int do_before_row_operations(const Relay_log_info *const log)=0
uchar * m_rows_buf
Definition: log_event.h:2767
uint m_rows_lookup_algorithm
The algorithm to use while searching for rows using the before image.
Definition: log_event.h:2741
TABLE * m_table
Definition: log_event.h:2720
ColumnViewPtr m_column_view
Wrapper around TABLE *m_table that abstracts the table field set iteration logic, since it is not man...
Definition: log_event.h:2902
bool is_rbr_logging_format() const override
Return true if the event has to be logged using RBR for DMLs.
Definition: log_event.h:2889
int do_hash_row(Relay_log_info const *rli)
Populates the m_hash when using HASH_SCAN.
Definition: log_event.cc:9179
Hash_slave_rows m_hash
Hash table that will hold the entries for while using HASH_SCAN algorithm to search and update/delete...
Definition: log_event.h:2735
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_SCA...
Definition: log_event.h:2807
int do_hash_scan_and_update(Relay_log_info const *rli)
Implementation of the hash_scan and update algorithm.
Definition: log_event.cc:9422
int add_row_data(uchar *data, size_t length)
Definition: log_event.h:2661
void decide_row_lookup_algorithm_and_key() SUPPRESS_UBSAN_CLANG10
Definition: log_event.cc:8323
uint m_key_index
Definition: log_event.h:2777
int do_apply_row(Relay_log_info const *rli)
Commodity wrapper around do_exec_row(), that deals with resetting the thd reference in the table.
Definition: log_event.cc:8759
int row_operations_scan_and_key_setup()
Definition: log_event.cc:8435
MY_BITMAP const * get_cols_ai() const
Definition: log_event.h:2670
Rows_log_event(THD *, TABLE *, const Table_id &table_id, MY_BITMAP const *cols, bool is_transactional, Log_event_type event_type, const unsigned char *extra_row_ndb_info)
Definition: log_event.cc:7677
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.
Definition: log_event.cc:10186
MY_BITMAP m_local_cols_ai
Bitmap denoting columns available in the after-image as they appear in the table setup.
Definition: log_event.h:2757
uchar * m_key
Definition: log_event.h:2776
int do_index_scan_and_update(Relay_log_info const *rli)
Implementation of the index scan and update algorithm.
Definition: log_event.cc:8935
int do_scan_and_update(Relay_log_info const *rli)
This member function scans the table and applies the changes that had been previously hashed.
Definition: log_event.cc:9247
virtual int do_add_row_data(uchar *data, size_t length)
Definition: log_event.cc:8052
Rows_applier_psi_stage m_psi_progress
Definition: log_event.h:2609
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...
Definition: log_event.cc:8526
size_t get_data_size() override
Definition: log_event.cc:8013
const char * get_db() override
Definition: log_event.h:2692
uint16 flag_set
Definition: log_event.h:2613
row_lookup_mode
Definition: log_event.h:2615
@ ROW_LOOKUP_INDEX_SCAN
Definition: log_event.h:2618
@ ROW_LOOKUP_UNDEFINED
Definition: log_event.h:2616
@ ROW_LOOKUP_NOT_NEEDED
Definition: log_event.h:2617
@ ROW_LOOKUP_TABLE_SCAN
Definition: log_event.h:2619
@ ROW_LOOKUP_HASH_SCAN
Definition: log_event.h:2620
virtual bool read_write_bitmaps_cmp(const TABLE *table) const =0
Compares the table's read/write_set with the columns included in this event's before-image and/or aft...
virtual int skip_after_image_for_update_event(const Relay_log_info *rli, const uchar *curr_bi_start)
Seek past the after-image of an update event, in case a row was processed without reading the after-i...
Definition: log_event.h:3027
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...
Definition: log_event.cc:8508
uchar * m_rows_cur
Definition: log_event.h:2768
const Table_id & get_table_id() const
Definition: log_event.h:2671
uint m_row_count
Definition: log_event.h:2695
int do_apply_event(Relay_log_info const *rli) override
Primitive to apply an event to the database.
Definition: log_event.cc:9526
int next_record_scan(bool first_read)
Fetches next row.
Definition: log_event.cc:8797
int pack_info(Protocol *protocol) override
Stores a string representation of this event in the Protocol.
Definition: log_event.cc:10438
@ RLE_NO_FLAGS
Definition: log_event.h:2636
int do_table_scan_and_update(Relay_log_info const *rli)
Implementation of the legacy table_scan and update algorithm.
Definition: log_event.cc:9443
MY_BITMAP m_local_cols
Bitmap denoting columns available in the image as they appear in the table setup.
Definition: log_event.h:2729
int open_record_scan()
Initializes scanning of rows.
Definition: log_event.cc:8859
void clear_flags(flag_set flags_arg)
Definition: log_event.h:2641
virtual int do_exec_row(const Relay_log_info *const rli)=0
std::set< uchar *, Key_compare >::iterator m_itr
Definition: log_event.h:2802
enum_error
Enumeration of the errors that can be returned.
Definition: log_event.h:2626
@ ERR_TABLE_LIMIT_EXCEEDED
No more room for tables.
Definition: log_event.h:2629
@ ERR_BAD_TABLE_DEF
Table definition does not match.
Definition: log_event.h:2631
@ ERR_OPEN_FAILURE
Failure to open table.
Definition: log_event.h:2627
@ ERR_RBR_TO_SBR
daisy-chanining RBR to SBR not allowed
Definition: log_event.h:2632
@ ERR_OUT_OF_MEM
Out of memory.
Definition: log_event.h:2630
@ ERR_OK
No error.
Definition: log_event.h:2628
int row_operations_scan_and_key_teardown(int error)
Definition: log_event.cc:8478
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 t...
Definition: log_event.cc:7990
virtual int do_after_row_operations(const Relay_log_info *const log, int error)=0
MY_BITMAP const * get_cols() const
Definition: log_event.h:2669
std::set< uchar *, Key_compare > m_distinct_keys
Definition: log_event.h:2801
void do_post_row_operations(Relay_log_info const *rli, int err)
Private member function called after updating/deleting a row.
Definition: log_event.cc:8641
const uchar * m_curr_row
Definition: log_event.h:2774
MY_BITMAP m_cols_ai
Bitmap for columns available in the after image, if present.
Definition: log_event.h:2750
int add_key_to_distinct_keyset()
Populates the m_distinct_keys with unique keys to be modified during HASH_SCAN over keys.
Definition: log_event.cc:8915
KEY * m_key_info
Definition: log_event.h:2778
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].
Definition: log_event.cc:7907
int do_update_pos(Relay_log_info *rli) override
The method either increments the relay log position or commits the current statement and increments t...
Definition: log_event.cc:10292
~Rows_log_event() override
Definition: log_event.cc:7887
void set_flags(flag_set flags_arg)
Definition: log_event.h:2640
friend class Old_rows_log_event
Definition: log_event.h:3094
const uchar * m_curr_row_end
Definition: log_event.h:2775
bool write_data_body(Basic_ostream *ostream) override
Definition: log_event.cc:10405
uint32 m_bitbuf_ai[128/(sizeof(uint32) *8)]
Definition: log_event.h:2761
MY_BITMAP m_cols
Definition: log_event.h:2722
It is used to record the original query for the rows events in RBR.
Definition: log_event.h:3568
size_t get_data_size() override
Definition: log_event.h:3601
~Rows_query_log_event() override
Definition: log_event.h:3594
int do_apply_event(Relay_log_info const *rli) override
Primitive to apply an event to the database.
Definition: log_event.cc:12806
bool write_data_body(Basic_ostream *ostream) override