![]() |
MySQL 8.0.43
Source Code Documentation
|
Binary log event definitions. More...
#include <atomic>#include <functional>#include <list>#include <map>#include <set>#include <string>#include <string_view>#include "libbinlogevents/include/binlog_event.h"#include "libbinlogevents/include/control_events.h"#include "libbinlogevents/include/load_data_events.h"#include "libbinlogevents/include/rows_event.h"#include "libbinlogevents/include/statement_events.h"#include "libbinlogevents/include/uuid.h"#include "m_string.h"#include "my_bitmap.h"#include "my_checksum.h"#include "my_dbug.h"#include "my_inttypes.h"#include "my_psi_config.h"#include "my_sharedlib.h"#include "my_sys.h"#include "my_thread_local.h"#include "mysql/components/services/bits/psi_stage_bits.h"#include "mysql/service_mysql_alloc.h"#include "mysql/udf_registration_types.h"#include "mysql_com.h"#include "partition_info.h"#include "sql/query_options.h"#include "sql/rpl_gtid.h"#include "sql/rpl_utility.h"#include "sql/sql_const.h"#include "sql/thr_malloc.h"#include "sql_string.h"#include "typelib.h"#include <stdio.h>#include "my_compiler.h"#include "sql/changestreams/misc/replicated_columns_view.h"#include "sql/key.h"#include "sql/rpl_filter.h"#include "sql/table.h"#include "sql/xa.h"#include <limits.h>#include <stdint.h>#include <string.h>#include <sys/types.h>#include <time.h>#include "mysql/psi/mysql_stage.h"Go to the source code of this file.
Classes | |
| struct | Mts_db_names |
| class | Log_event |
| This is the abstract base class for binary log events. More... | |
| class | Query_log_event |
| A Query event is written to the binary log whenever the database is modified on the master, unless row based logging is used. More... | |
| class | Format_description_log_event |
| For binlog version 4. More... | |
| class | Intvar_log_event |
| The class derives from the class Intvar_event in Binlog API, defined in the header binlog_event.h. More... | |
| class | Rand_log_event |
| Logs random seed used by the next RAND(), and by PASSWORD() in 4.1.0. More... | |
| class | Xid_apply_log_event |
| class | Xid_log_event |
| This is the subclass of Xid_event defined in libbinlogevent, An XID event is generated for a commit of a transaction that modifies one or more tables of an XA-capable storage engine Logs xid of the transaction-to-be-committed in the 2pc protocol. More... | |
| class | XA_prepare_log_event |
| Similar to Xid_log_event except that. More... | |
| class | User_var_log_event |
| Every time a query uses the value of a user variable, a User_var_log_event is written before the Query_log_event, to set the user variable. More... | |
| class | Stop_log_event |
| class | Rotate_log_event |
| This will be deprecated when we move to using sequence ids. More... | |
| class | Append_block_log_event |
| This event is created to contain the file data. More... | |
| class | Delete_file_log_event |
| Delete_file_log_event is created when the LOAD_DATA query fails on the master for some reason, and the slave should be notified to abort the load. More... | |
| class | Begin_load_query_log_event |
| Event for the first block of file to be loaded, its only difference from Append_block event is that this event creates or truncates existing file before writing data. More... | |
| class | Execute_load_query_log_event |
| Event responsible for LOAD DATA execution, it similar to Query_log_event but before executing the query it substitutes original filename in LOAD DATA query with name of temporary file. More... | |
| class | Load_query_generator |
| class | Table_map_log_event |
| Table_map_log_event which maps a table definition to a number. More... | |
| class | Rows_applier_psi_stage |
| class | Rows_log_event |
| Common base class for all row-containing log events. More... | |
| class | Rows_log_event::Key_compare |
| class | Write_rows_log_event |
| Log row insertions and updates. More... | |
| class | Update_rows_log_event |
| Log row updates with a before image. More... | |
| class | Delete_rows_log_event |
| Log row deletions. More... | |
| class | Incident_log_event |
| Class representing an incident, an occurrence out of the ordinary, that happened on the master. More... | |
| class | Ignorable_log_event |
| Base class for ignorable log events is Ignorable_event. More... | |
| class | Rows_query_log_event |
| It is used to record the original query for the rows events in RBR. More... | |
| class | Heartbeat_log_event |
| class | Heartbeat_log_event_v2 |
| class | Transaction_payload_log_event |
| class | Transaction_payload_log_event::Applier_context |
| class | Gtid_log_event |
| This is a subclass if Gtid_event and Log_event. More... | |
| class | Previous_gtids_log_event |
| This is the subclass of Previous_gtids_event and Log_event It is used to record the gtid_executed in the last binary log file, for ex after flush logs, or at the starting of the binary log file. More... | |
| class | Transaction_context_log_event |
| This is the subclass of Transaction_context_event and Log_event This class encodes the transaction_context_log_event. More... | |
| class | View_change_log_event |
| This is the subclass of View_change_log_event and Log_event This class created the view_change_log_event which is used as a marker in case a new node joins or leaves the group. More... | |
Macros | |
| #define | PREFIX_SQL_LOAD "SQL_LOAD-" |
| #define | TEMP_FILE_MAX_LEN UUID_LENGTH + 38 |
| Maximum length of the name of a temporary file PREFIX LENGTH - 9 UUID - UUID_LENGTH SEPARATORS - 2 SERVER ID - 10 (range of server ID 1 to (2^32)-1 = 4,294,967,295) FILE ID - 10 (uint) EXTENSION - 7 (Assuming that the extension is always less than 7 characters) More... | |
| #define | ASSERT_OR_RETURN_ERROR(COND, ERRNO) assert(COND) |
| Either assert or return an error. More... | |
| #define | LOG_EVENT_OFFSET 4 |
| #define | NUM_LOAD_DELIM_STRS 5 |
| #define | MAX_LOG_EVENT_HEADER |
| #define | SL_MASTER_PORT_OFFSET 8 |
| #define | SL_MASTER_POS_OFFSET 0 |
| #define | SL_MASTER_HOST_OFFSET 10 |
| #define | I_TYPE_OFFSET 0 |
| #define | I_VAL_OFFSET 1 |
| #define | BINLOG_MAGIC "\xfe\x62\x69\x6e" |
| #define | BINLOG_MAGIC_SIZE 4 |
| #define | LOG_EVENT_THREAD_SPECIFIC_F 0x4 |
| If the query depends on the thread (for example: TEMPORARY TABLE). More... | |
| #define | LOG_EVENT_SUPPRESS_USE_F 0x8 |
| Suppress the generation of 'USE' statements before the actual statement. More... | |
| #define | LOG_EVENT_ARTIFICIAL_F 0x20 |
| Artificial events are created arbitrarily and not written to binary log. More... | |
| #define | LOG_EVENT_RELAY_LOG_F 0x40 |
| Events with this flag set are created by slave IO thread and written to relay log. More... | |
| #define | LOG_EVENT_IGNORABLE_F 0x80 |
| For an event, 'e', carrying a type code, that a slave, 's', does not recognize, 's' will check 'e' for LOG_EVENT_IGNORABLE_F, and if the flag is set, then 'e' is ignored. More... | |
| #define | LOG_EVENT_NO_FILTER_F 0x100 |
| Events with this flag are not filtered (e.g. More... | |
| #define | LOG_EVENT_MTS_ISOLATE_F 0x200 |
| MTS: group of events can be marked to force its execution in isolation from any other Workers. More... | |
| #define | OPTIONS_WRITTEN_TO_BIN_LOG |
| OPTIONS_WRITTEN_TO_BIN_LOG are the bits of thd->options which must be written to the binlog. More... | |
| #define | EXPECTED_OPTIONS ((1ULL << 14) | (1ULL << 26) | (1ULL << 27) | (1ULL << 19)) |
Typedefs | |
| using | ColumnViewPtr = std::unique_ptr< cs::util::ReplicatedColumnsView > |
| typedef ulonglong | sql_mode_t |
Functions | |
| int | ignored_error_code (int err_code) |
| Ignore error code specified on command line. More... | |
| int | get_rpl_part_id (partition_info *part_info) |
| This method is used to extract the partition_id from a partitioned table. More... | |
| char * | str_to_hex (char *to, const char *from, size_t len) |
| Transforms a string into "" or its expression in 0x... form. More... | |
| static bool | copy_event_cache_to_file_and_reinit (IO_CACHE *cache, FILE *file, bool flush_stream) |
| bool | slave_execute_deferred_events (THD *thd) |
| The function is called by slave applier in case there are active table filtering rules to force gathering events associated with Query-log-event into an array to execute them once the fate of the Query is determined for execution. More... | |
| int | append_query_string (const THD *thd, const CHARSET_INFO *csinfo, String const *from, String *to) |
| Append a version of the 'from' string suitable for use in a query to the 'to' string. More... | |
| bool | is_gtid_event (const Log_event *evt) |
| bool | is_session_control_event (Log_event *evt) |
Check if the given event is a session control event, one of User_var_event, Intvar_event or Rand_event. More... | |
| bool | is_atomic_ddl_event (Log_event const *evt) |
| The function checks the argument event properties to deduce whether it represents an atomic DDL. More... | |
| bool | is_atomic_ddl (THD *thd, bool using_trans) |
| The function lists all DDL instances that are supported for crash-recovery (WL9175). More... | |
| template<class EVENT > | |
| bool | binary_event_serialize (EVENT *ev, Basic_ostream *ostream) |
| Serialize an binary event to the given output stream. More... | |
| size_t | my_strmov_quoted_identifier (THD *thd, char *buffer, const char *identifier, size_t length) |
| size_t | my_strmov_quoted_identifier_helper (int q, char *buffer, const char *identifier, size_t length) |
| template<typename T > | |
| bool | net_field_length_checked (const uchar **packet, size_t *max_length, T *out) |
| Read an integer in net_field_length format, guarding against read out of bounds and advancing the position. More... | |
| std::pair< bool, binary_log::Log_event_basic_info > | extract_log_event_basic_info (Log_event *log_event) |
| Extract basic info about an event: type, query, is it ignorable. More... | |
| std::pair< bool, binary_log::Log_event_basic_info > | extract_log_event_basic_info (const char *buf, size_t length, const binary_log::Format_description_event *fd_event) |
| Extract basic info about an event: type, query, is it ignorable. More... | |
Variables | |
| PSI_memory_key | key_memory_Incident_log_event_message |
| PSI_memory_key | key_memory_Rows_query_log_event_rows_query |
| MYSQL_PLUGIN_IMPORT ulong | server_id |
| MYSQL_PLUGIN_IMPORT char | server_version [SERVER_VERSION_LENGTH] |
| const int64 | SEQ_MAX_TIMESTAMP = LLONG_MAX |
| Maximum value of binlog logical timestamp. More... | |
| TYPELIB | binlog_checksum_typelib |
Binary log event definitions.
This includes generic code common to all types of log events, as well as specific code for each type of log event.