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 *) {}
885#if defined(MYSQL_SERVER)
1088 virtual bool ends_group()
const {
return false; }
1129 DBUG_PRINT(
"info", (
"skip reason=%d=%s", ret,
1323 bool using_trans,
bool immediate,
bool suppress_use,
1324 int error,
bool ignore_command =
false);
1325 const char *
get_db()
override {
return db; }
1349 const char *db_filtered =
1368 PRINT_EVENT_INFO *print_event_info)
const;
1369 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
1370 static bool rewrite_db_in_buffer(
char **
buf, ulong *event_len,
1395#if defined(MYSQL_SERVER)
1460 const char **query_arg);
1463 return !strncmp(
query, pattern, p_len);
1529 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
1538 return Binary_log_event::FORMAT_DESCRIPTION_HEADER_LEN;
1542#if defined(MYSQL_SERVER)
1586 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
1603#if defined(MYSQL_SERVER)
1648 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
1662#if defined(MYSQL_SERVER)
1710 bool ends_group()
const override {
return true; }
1711#if defined(MYSQL_SERVER)
1729 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
1740#if defined(MYSQL_SERVER)
1786 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
1788#if defined(MYSQL_SERVER)
1820 char *val_arg, ulong val_len_arg,
Item_result type_arg,
1821 uint charset_number_arg,
uchar flags_arg,
1825 type_arg, charset_number_arg, flags_arg),
1833 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
1860#if defined(MYSQL_SERVER)
1881 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
1896#if defined(MYSQL_SERVER)
1942 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
1949 return ident_len + Binary_log_event::ROTATE_HEADER_LEN;
1956#if defined(MYSQL_SERVER)
1992 uint block_len_arg,
bool using_trans);
1996 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
2003 return block_len + Binary_log_event::APPEND_BLOCK_HEADER_LEN;
2007 const char *
get_db()
override {
return db; }
2013#if defined(MYSQL_SERVER)
2054 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
2055 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info,
bool enable_local);
2062 return Binary_log_event::DELETE_FILE_HEADER_LEN;
2066 const char *
get_db()
override {
return db; }
2072#if defined(MYSQL_SERVER)
2119 uint block_len_arg,
bool using_trans);
2128#if defined(MYSQL_SERVER)
2175 THD *
thd,
const char *query_arg, ulong query_length,
2176 uint fn_pos_start_arg,
uint fn_pos_end_arg,
2178 bool immediate,
bool suppress_use,
int errcode);
2181 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
2184 const char *local_fname)
const;
2198#if defined(MYSQL_SERVER)
2203#if defined MYSQL_SERVER
2207 const char *table_name_arg,
bool is_concurrent_arg,
2240 Unknown_log_event(
const char *
buf,
2246 common_header->set_is_valid(
true);
2250 ~Unknown_log_event()
override =
default;
2251 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
2255char *
str_to_hex(
char *to,
const char *from,
size_t len);
2322 bool is_transactional);
2335 static bool rewrite_db_in_buffer(
char **
buf, ulong *event_len,
2377#if defined(MYSQL_SERVER)
2382 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
2394 const Optional_metadata_fields &fields)
const;
2405 const Optional_metadata_fields &fields)
const;
2413#if defined(MYSQL_SERVER)
2473 class Charset_iterator;
2474 class Default_charset_iterator;
2475 class Column_charset_iterator;
2479#ifdef HAVE_PSI_STAGE_INTERFACE
2531 if (estimated == 0) {
2532 assert(cursor > begin);
2534 estimated = (
end - begin) / avg_row_change_size;
2600#ifdef HAVE_PSI_STAGE_INTERFACE
2640#if defined(MYSQL_SERVER)
2645 void print_verbose(
IO_CACHE *
file, PRINT_EVENT_INFO *print_event_info);
2647 PRINT_EVENT_INFO *print_event_info,
2649 const uchar *prefix,
2667#if defined(MYSQL_SERVER)
2698 MY_BITMAP const *cols,
bool is_transactional,
2700 const unsigned char *extra_row_ndb_info);
2706 void print_helper(
FILE *, PRINT_EVENT_INFO *)
const;
2767#if defined(MYSQL_SERVER)
2788 return key_cmp2((*m_key_info)->key_part, k1, (*m_key_info)->key_length,
2789 k2, (*m_key_info)->key_length) < 0;
2796 std::set<uchar *, Key_compare>::iterator
m_itr;
2825 bool is_after_image,
bool only_seek =
false);
2886#if defined(MYSQL_SERVER)
3023 const uchar *curr_bi_start
3143#if defined(MYSQL_SERVER)
3145 bool is_transactional,
3146 const unsigned char *extra_row_ndb_info);
3150#if defined(MYSQL_SERVER)
3152 bool is_transactional,
3153 const uchar *before_record
3170 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
3173#if defined(MYSQL_SERVER)
3231 bool is_transactional,
3232 const unsigned char *extra_row_ndb_info);
3235 bool is_transactional,
3236 const unsigned char *extra_row_ndb_info);
3248 bool is_transactional,
3249 const uchar *before_record,
3263 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
3266#if defined(MYSQL_SERVER)
3272 const uchar *curr_bi_start)
override;
3285 const THD *thd_arg);
3346 const unsigned char *extra_row_ndb_info);
3352 bool is_transactional,
3353 const uchar *before_record,
3354 const uchar *after_record
3367 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
3370#if defined(MYSQL_SERVER)
3415 DBUG_PRINT(
"enter", (
"incident: %d", incident_arg));
3428 DBUG_PRINT(
"enter", (
"incident: %d", incident_arg));
3454 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
3457#if defined(MYSQL_SERVER)
3464 return Binary_log_event::INCIDENT_HEADER_LEN + 1 +
message_length;
3467 bool ends_group()
const override {
return true; }
3520 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
3524 return Binary_log_event::IGNORABLE_HEADER_LEN;
3593 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
3596 return Binary_log_event::IGNORABLE_HEADER_LEN + 1 + strlen(
m_rows_query);
3602 bool flush_stream) {
3604 (flush_stream ? (fflush(
file) || ferror(
file)) : 0) ||
3663 uint64_t payload_size,
3664 uint16_t compression_type,
3665 uint64_t uncompressed_size)
3672 uint64_t payload_size)
3674 thd_arg, payload, payload_size,
3688 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
3694#if defined(MYSQL_SERVER)
3742 int64 sequence_number_arg,
bool may_have_sbr_stmts_arg,
3743 ulonglong original_commit_timestamp_arg,
3744 ulonglong immediate_commit_timestamp_arg,
3745 uint32_t original_server_version_arg,
3746 uint32_t immediate_server_version_arg);
3753 int64 last_committed_arg,
int64 sequence_number_arg,
3754 bool may_have_sbr_stmts_arg,
3755 ulonglong original_commit_timestamp_arg,
3756 ulonglong immediate_commit_timestamp_arg,
3758 uint32_t original_server_version_arg,
3759 uint32_t immediate_server_version_arg);
3827 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
3830#if defined(MYSQL_SERVER)
3919 bool is_checksum_enabled =
false,
3920 int event_counter = 0);
3965 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
3978 (
"skip writing Previous_gtids_log_event because of"
3979 "debug option 'skip_writing_previous_gtids_log_event'"));
3990 (
"writing partial Previous_gtids_log_event because of"
3991 "debug option 'write_partial_previous_gtids_log_event'"));
4023#if defined(MYSQL_SERVER)
4087 bool is_gtid_specified_arg);
4104 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
4107#if defined(MYSQL_SERVER)
4202 std::map<std::string, std::string> *
map);
4222 void print(
FILE *
file, PRINT_EVENT_INFO *print_event_info)
const override;
4225#if defined(MYSQL_SERVER)
4246 size_t *event_size);
4330template <
class EVENT>
4332 return ev->write(ostream);
4340 const char *identifier,
size_t length);
4345 const char *identifier,
4366template <
typename T>
int64 query_id_t
Definition: binlog.h:70
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:1987
Append_block_log_event(THD *thd, const char *db_arg, uchar *block_arg, uint block_len_arg, bool using_trans)
Definition: log_event.cc:6937
bool write(Basic_ostream *ostream) override
Definition: log_event.cc:6967
virtual int get_create_or_append() const
Definition: log_event.cc:7012
bool is_sbr_logging_format() const override
Return true if the event has to be logged using SBR for DMLs.
Definition: log_event.h:2009
size_t get_data_size() override
Definition: log_event.h:2001
int pack_info(Protocol *protocol) override
Stores a string representation of this event in the Protocol.
Definition: log_event.cc:6999
~Append_block_log_event() override=default
const char * get_db() override
Definition: log_event.h:2006
int do_apply_event(Relay_log_info const *rli) override
Primitive to apply an event to the database.
Definition: log_event.cc:7042
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:2114
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:7253
~Begin_load_query_log_event() override=default
int get_create_or_append() const override
Definition: log_event.cc:7249
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:7225
Delete_file_log_event is created when the LOAD_DATA query fails on the master for some reason,...
Definition: log_event.h:2047
int do_apply_event(Relay_log_info const *rli) override
Primitive to apply an event to the database.
Definition: log_event.cc:7198
size_t get_data_size() override
Definition: log_event.h:2060
~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:2068
bool write(Basic_ostream *ostream) override
Definition: log_event.cc:7158
const char * get_db() override
Definition: log_event.h:2065
Delete_file_log_event(THD *thd, const char *db_arg, bool using_trans)
Definition: log_event.cc:7131
int pack_info(Protocol *protocol) override
Stores a string representation of this event in the Protocol.
Definition: log_event.cc:7186
Log row deletions.
Definition: log_event.h:3336
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:3355
@ TYPE_CODE
Definition: log_event.h:3340
Delete_rows_log_event(THD *, TABLE *, const Table_id &, bool is_transactional, const unsigned char *extra_row_ndb_info)
Definition: log_event.cc:12335
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:12351
int do_after_row_operations(const Relay_log_info *const, int) override
Definition: log_event.cc:12396
Log_event_type get_general_type_code() override
Definition: log_event.h:3361
int do_exec_row(const Relay_log_info *const) override
Definition: log_event.cc:12403
int do_before_row_operations(const Relay_log_info *const) override
Definition: log_event.cc:12373
Event responsible for LOAD DATA execution, it similar to Query_log_event but before executing the que...
Definition: log_event.h:2170
int do_apply_event(Relay_log_info const *rli) override
Primitive to apply an event to the database.
Definition: log_event.cc:7400
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:2194
bool write_post_header_for_derived(Basic_ostream *ostream) override
Definition: log_event.cc:7310
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:7266
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:7369
ulong get_post_header_size_for_derived() override
Definition: log_event.cc:7305
~Execute_load_query_log_event() override=default
This is a subclass if Gtid_event and Log_event.
Definition: log_event.h:3734
rpl_sidno get_sidno(bool need_lock)
Return the SIDNO relative to the global sid_map for this GTID.
Definition: log_event.cc:13382
const rpl_sid * get_sid() const
Return the SID for this GTID.
Definition: log_event.h:3845
rpl_sid sid
SID for this GTID.
Definition: log_event.h:3895
~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:13094
size_t get_event_length()
Definition: log_event.h:3776
int do_update_pos(Relay_log_info *rli) override
Advance relay log coordinates.
Definition: log_event.cc:13314
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:3839
uint32 write_body_to_memory(uchar *buff)
Writes the body to the given memory buffer.
Definition: log_event.cc:13101
int do_apply_event(Relay_log_info const *rli) override
Primitive to apply an event to the database.
Definition: log_event.cc:13172
uint32 write_post_header_to_memory(uchar *buffer)
Writes the post-header to the given memory buffer.
Definition: log_event.cc:13041
static const size_t SET_STRING_PREFIX_LENGTH
Length of SET_STRING_PREFIX.
Definition: log_event.h:3882
rpl_gno get_gno() const
Return the GNO for this GTID.
Definition: log_event.h:3875
bool write_data_body(Basic_ostream *ostream) override
Definition: log_event.cc:13163
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:13333
static const size_t MAX_SET_STRING_LENGTH
The maximal length of the entire "SET ..." query.
Definition: log_event.h:3884
static const char * SET_STRING_PREFIX
string holding the text "SET @@GLOBAL.GTID_NEXT = '"
Definition: log_event.h:3878
Gtid_specification spec
Internal representation of the GTID.
Definition: log_event.h:3893
int pack_info(Protocol *) override
Stores a string representation of this event in the Protocol.
Definition: log_event.cc:12947
size_t get_data_size() override
Definition: log_event.h:3769
size_t to_string(char *buf) const
Used internally by both print() and pack_info().
Definition: log_event.cc:12955
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:12855
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:13328
Represents a set of GTIDs.
Definition: rpl_gtid.h:1454
Definition: rpl_utility.h:108
Definition: log_event.h:3625
Heartbeat_log_event_v2(const char *buf, const Format_description_event *description_event)
Definition: log_event.cc:14214
Definition: log_event.h:3618
Heartbeat_log_event(const char *buf, const Format_description_event *description_event)
Definition: log_event.cc:14207
Base class for ignorable log events is Ignorable_event.
Definition: log_event.h:3498
Ignorable_log_event(THD *thd_arg)
Definition: log_event.h:3501
int pack_info(Protocol *) override
Stores a string representation of this event in the Protocol.
Definition: log_event.cc:12721
size_t get_data_size() override
Definition: log_event.h:3522
~Ignorable_log_event() override
Class representing an incident, an occurrence out of the ordinary, that happened on the master.
Definition: log_event.h:3406
bool write_data_header(Basic_ostream *ostream) override
Definition: log_event.cc:12671
size_t get_data_size() override
Definition: log_event.h:3462
Incident_log_event(THD *thd_arg, enum_incident incident_arg)
Definition: log_event.h:3409
bool write_data_body(Basic_ostream *ostream) override
Definition: log_event.cc:12697
~Incident_log_event() override
Definition: log_event.cc:12591
int do_apply_event(Relay_log_info const *rli) override
Primitive to apply an event to the database.
Definition: log_event.cc:12632
int pack_info(Protocol *) override
Stores a string representation of this event in the Protocol.
Definition: log_event.cc:12605
const char * description() const
Definition: log_event.cc:12595
bool ends_group() const override
Definition: log_event.h:3466
The class derives from the class Intvar_event in Binlog API, defined in the header binlog_event....
Definition: log_event.h:1572
bool write(Basic_ostream *ostream) override
Definition: log_event.cc:5809
~Intvar_log_event() override=default
size_t get_data_size() override
Definition: log_event.h:1591
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:1575
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:5883
int pack_info(Protocol *protocol) override
Stores a string representation of this event in the Protocol.
Definition: log_event.cc:5784
bool is_sbr_logging_format() const override
Return true if the event has to be logged using SBR for DMLs.
Definition: log_event.h:1599
int do_apply_event(Relay_log_info const *rli) override
Primitive to apply an event to the database.
Definition: log_event.cc:5858
int do_update_pos(Relay_log_info *rli) override
Advance relay log coordinates.
Definition: log_event.cc:5878
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:2203
bool has_replace
Definition: log_event.h:2223
const size_t BUF_SIZE
Definition: log_event.h:2212
const char * table_name
Definition: log_event.h:2219
const char * fname
Definition: log_event.h:2220
const sql_exchange * sql_ex
Definition: log_event.h:2217
THD * thd
Definition: log_event.h:2216
bool has_ignore
Definition: log_event.h:2224
String str
Definition: log_event.h:2213
const char * db
Definition: log_event.h:2218
bool is_concurrent
Definition: log_event.h:2222
const String * generate(size_t *fn_start, size_t *fn_end)
Definition: log_event.cc:7509
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:7492
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:898
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:844
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:838
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:1150
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:1082
uint32 server_id
Definition: log_event.h:673
enum_mts_event_exec_mode
Definition: log_event.h:918
@ EVENT_EXEC_PARALLEL
Definition: log_event.h:922
@ EVENT_EXEC_SYNC
Definition: log_event.h:930
@ EVENT_EXEC_CAN_NOT
Definition: log_event.h:934
@ EVENT_EXEC_ASYNC
Definition: log_event.h:926
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:1125
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:1044
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:873
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:832
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:835
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
int update_pos(Relay_log_info *rli)
Update the relay log position.
Definition: log_event.h:1117
virtual int do_apply_event_worker(Slave_worker *w)
Definition: log_event.cc:1022
void set_artificial_event()
Definition: log_event.h:820
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:841
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:952
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:1024
THD * thd
Definition: log_event.h:728
Log_event_type get_type_code() const
Definition: log_event.h:804
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:859
virtual uint8 mts_number_dbs()
Definition: log_event.h:1061
void free_temp_buf()
Definition: log_event.h:863
bool is_mts_group_isolated()
Definition: log_event.h:1068
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:813
virtual ~Log_event()
Definition: log_event.h:858
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:809
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:847
void set_relay_log_event()
Definition: log_event.h:828
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:829
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:1087
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:3947
bool write_data_body(Basic_ostream *ostream) override
Definition: log_event.cc:13478
int do_update_pos(Relay_log_info *rli) override
Advance relay log coordinates.
Definition: log_event.cc:13485
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:13459
int pack_info(Protocol *) override
Stores a string representation of this event in the Protocol.
Definition: log_event.cc:13422
int do_apply_event(Relay_log_info const *) override
Primitive to apply an event to the database.
Definition: log_event.h:4028
int add_to_set(Gtid_set *gtid_set) const
Add all GTIDs from this event to the given Gtid_set.
Definition: log_event.cc:13448
size_t get_data_size() override
Definition: log_event.h:3961
Previous_gtids_log_event(const Gtid_set *set)
Definition: log_event.cc:13402
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:4023
bool write(Basic_ostream *ostream) override
Definition: log_event.h:3967
~Previous_gtids_log_event() override=default
const uchar * get_buf()
Return the encoded buffer, or NULL on error.
Definition: log_event.h:4004
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:1273
int do_update_pos(Relay_log_info *rli) override
Advance relay log coordinates.
Definition: log_event.cc:5111
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:1468
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:1438
bool is_trans_keyword() const
Definition: log_event.h:1406
bool m_skip_temp_tables_handling_by_worker
Instructs the applier to skip temporary tables handling.
Definition: log_event.h:1311
Query_log_event()
The simplest constructor that could possibly work.
Definition: log_event.cc:3646
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:5125
virtual ulong get_post_header_size_for_derived()
Definition: log_event.h:1390
bool starts_group() const override
Notice, DDL queries are logged without BEGIN/COMMIT parentheses and identification of such single-que...
Definition: log_event.h:1446
uchar mts_number_dbs() override
Definition: log_event.h:1362
my_thread_id slave_proxy_id
Definition: log_event.h:1284
void set_skip_temp_tables_handling_by_worker()
Definition: log_event.h:1313
bool has_ddl_committed
The flag indicates whether the DDL query has been (already) committed or not.
Definition: log_event.h:1304
int do_apply_event(Relay_log_info const *rli) override
Primitive to apply an event to the database.
Definition: log_event.cc:4392
~Query_log_event() override
Definition: log_event.h:1378
void attach_temp_tables_worker(THD *, const Relay_log_info *)
Associating slave Worker thread to a subset of temporary tables.
Definition: log_event.cc:4369
bool write(Basic_ostream *ostream) override
Query_log_event::write().
Definition: log_event.cc:3354
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:1292
bool is_query_prefix_match(const char *pattern, uint p_len)
Definition: log_event.h:1461
uint8 get_mts_dbs(Mts_db_names *arg, Rpl_filter *rpl_filter) override
Definition: log_event.h:1337
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:1472
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:5161
const char * get_db() override
Definition: log_event.h:1324
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:3303
Log_event_header::Byte * data_buf
Definition: log_event.h:1275
bool ends_group() const override
Definition: log_event.h:1451
bool is_skip_temp_tables_handling_by_worker()
Definition: log_event.h:1317
virtual bool write_post_header_for_derived(Basic_ostream *)
Definition: log_event.h:1383
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:4383
Logs random seed used by the next RAND(), and by PASSWORD() in 4.1.0.
Definition: log_event.h:1634
bool write(Basic_ostream *ostream) override
Definition: log_event.cc:5919
bool is_sbr_logging_format() const override
Return true if the event has to be logged using SBR for DMLs.
Definition: log_event.h:1658
~Rand_log_event() override=default
size_t get_data_size() override
Definition: log_event.h:1653
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:1637
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:5964
int do_apply_event(Relay_log_info const *rli) override
Primitive to apply an event to the database.
Definition: log_event.cc:5945
int pack_info(Protocol *protocol) override
Stores a string representation of this event in the Protocol.
Definition: log_event.cc:5900
int do_update_pos(Relay_log_info *rli) override
Advance relay log coordinates.
Definition: log_event.cc:5959
Definition: rpl_rli.h:201
This will be deprecated when we move to using sequence ids.
Definition: log_event.h:1934
int do_update_pos(Relay_log_info *rli) override
Advance relay log coordinates.
Definition: log_event.cc:5617
int pack_info(Protocol *protocol) override
Stores a string representation of this event in the Protocol.
Definition: log_event.cc:5510
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:5760
~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:5546
bool write(Basic_ostream *ostream) override
Definition: log_event.cc:5588
size_t get_data_size() override
Definition: log_event.h:1947
Definition: log_event.h:2482
bool is_enabled()
If instrumentation is enabled this member function SHALL return true.
Definition: log_event.h:2509
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:2555
ulonglong m_n_rows_applied
Counter that is unconditionally incremented on each row that is processed.
Definition: log_event.h:2497
ulonglong get_n_rows_applied()
Gets the value of the counter of rows that have been processed.
Definition: log_event.h:2561
Rows_applier_psi_stage()
Definition: log_event.h:2500
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:2522
void set_progress(PSI_stage_progress *progress)
Definition: log_event.h:2502
void end_work()
Resets this object.
Definition: log_event.h:2546
PSI_stage_progress * m_progress
A cached pointer to this stage PSI_stage_progress.
Definition: log_event.h:2490
Definition: log_event.h:2772
KEY ** m_key_info
Definition: log_event.h:2792
Key_compare(KEY **ki=nullptr)
Definition: log_event.h:2785
bool operator()(uchar *k1, uchar *k2) const
Definition: log_event.h:2786
Common base class for all row-containing log events.
Definition: log_event.h:2598
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:3095
uint32 m_bitbuf[128/(sizeof(uint32) *8)]
Definition: log_event.h:2753
virtual Log_event_type get_general_type_code()=0
uchar * m_rows_end
Definition: log_event.h:2762
int close_record_scan()
Does the cleanup.
Definition: log_event.cc:8783
size_t get_width() const
Definition: log_event.h:2663
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:8728
bool write_data_header(Basic_ostream *ostream) override
Definition: log_event.cc:10323
virtual int do_before_row_operations(const Relay_log_info *const log)=0
uchar * m_rows_buf
Definition: log_event.h:2760
uint m_rows_lookup_algorithm
The algorithm to use while searching for rows using the before image.
Definition: log_event.h:2734
TABLE * m_table
Definition: log_event.h:2713
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:2895
bool is_rbr_logging_format() const override
Return true if the event has to be logged using RBR for DMLs.
Definition: log_event.h:2882
int do_hash_row(Relay_log_info const *rli)
Populates the m_hash when using HASH_SCAN.
Definition: log_event.cc:9178
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:2728
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:2800
int do_hash_scan_and_update(Relay_log_info const *rli)
Implementation of the hash_scan and update algorithm.
Definition: log_event.cc:9421
int add_row_data(uchar *data, size_t length)
Definition: log_event.h:2653
void decide_row_lookup_algorithm_and_key() SUPPRESS_UBSAN_CLANG10
Definition: log_event.cc:8322
uint m_key_index
Definition: log_event.h:2770
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:8758
int row_operations_scan_and_key_setup()
Definition: log_event.cc:8434
MY_BITMAP const * get_cols_ai() const
Definition: log_event.h:2662
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:7676
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:10185
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:2750
uchar * m_key
Definition: log_event.h:2769
int do_index_scan_and_update(Relay_log_info const *rli)
Implementation of the index scan and update algorithm.
Definition: log_event.cc:8934
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:9246
virtual int do_add_row_data(uchar *data, size_t length)
Definition: log_event.cc:8051
Rows_applier_psi_stage m_psi_progress
Definition: log_event.h:2601
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:8525
size_t get_data_size() override
Definition: log_event.cc:8012
const char * get_db() override
Definition: log_event.h:2685
uint16 flag_set
Definition: log_event.h:2605
row_lookup_mode
Definition: log_event.h:2607
@ ROW_LOOKUP_INDEX_SCAN
Definition: log_event.h:2610
@ ROW_LOOKUP_UNDEFINED
Definition: log_event.h:2608
@ ROW_LOOKUP_NOT_NEEDED
Definition: log_event.h:2609
@ ROW_LOOKUP_TABLE_SCAN
Definition: log_event.h:2611
@ ROW_LOOKUP_HASH_SCAN
Definition: log_event.h:2612
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:3020
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:8507
uchar * m_rows_cur
Definition: log_event.h:2761
const Table_id & get_table_id() const
Definition: log_event.h:2664
uint m_row_count
Definition: log_event.h:2688
int do_apply_event(Relay_log_info const *rli) override
Primitive to apply an event to the database.
Definition: log_event.cc:9525
int next_record_scan(bool first_read)
Fetches next row.
Definition: log_event.cc:8796
int pack_info(Protocol *protocol) override
Stores a string representation of this event in the Protocol.
Definition: log_event.cc:10437
@ RLE_NO_FLAGS
Definition: log_event.h:2628
int do_table_scan_and_update(Relay_log_info const *rli)
Implementation of the legacy table_scan and update algorithm.
Definition: log_event.cc:9442
MY_BITMAP m_local_cols
Bitmap denoting columns available in the image as they appear in the table setup.
Definition: log_event.h:2722
int open_record_scan()
Initializes scanning of rows.
Definition: log_event.cc:8858
void clear_flags(flag_set flags_arg)
Definition: log_event.h:2633
virtual int do_exec_row(const Relay_log_info *const rli)=0
std::set< uchar *, Key_compare >::iterator m_itr
Definition: log_event.h:2795
enum_error
Enumeration of the errors that can be returned.
Definition: log_event.h:2618
@ ERR_TABLE_LIMIT_EXCEEDED
No more room for tables.
Definition: log_event.h:2621
@ ERR_BAD_TABLE_DEF
Table definition does not match.
Definition: log_event.h:2623
@ ERR_OPEN_FAILURE
Failure to open table.
Definition: log_event.h:2619
@ ERR_RBR_TO_SBR
daisy-chanining RBR to SBR not allowed
Definition: log_event.h:2624
@ ERR_OUT_OF_MEM
Out of memory.
Definition: log_event.h:2622
@ ERR_OK
No error.
Definition: log_event.h:2620
int row_operations_scan_and_key_teardown(int error)
Definition: log_event.cc:8477
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:7989
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:2661
std::set< uchar *, Key_compare > m_distinct_keys
Definition: log_event.h:2794
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:8640
const uchar * m_curr_row
Definition: log_event.h:2767
MY_BITMAP m_cols_ai
Bitmap for columns available in the after image, if present.
Definition: log_event.h:2743
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:8914
KEY * m_key_info
Definition: log_event.h:2771
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:7906
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:10291
~Rows_log_event() override
Definition: log_event.cc:7886
void set_flags(flag_set flags_arg)
Definition: log_event.h:2632
friend class Old_rows_log_event
Definition: log_event.h:3087
const uchar * m_curr_row_end
Definition: log_event.h:2768
bool write_data_body(Basic_ostream *ostream) override
Definition: log_event.cc:10404
uint32 m_bitbuf_ai[128/(sizeof(uint32) *8)]
Definition: log_event.h:2754
MY_BITMAP m_cols
Definition: log_event.h:2715
It is used to record the original query for the rows events in RBR.
Definition: log_event.h:3561
size_t get_data_size() override
Definition: log_event.h:3594
~Rows_query_log_event() override
Definition: log_event.h:3587
int do_apply_event(Relay_log_info const *rli) override
Primitive to apply an event to the database.
Definition: log_event.cc:12804
bool write_data_body(Basic_ostream *ostream) override
Definition: log_event.cc:12794