37#define MYSQL_THD THD *
39#define MYSQL_THD void *
221#define TRANS_PARAM_ZERO(trans_param_obj) \
222 memset(&trans_param_obj, 0, sizeof(Trans_param));
522 unsigned char *header,
unsigned long size,
538 unsigned char *packet,
unsigned long len,
558 const char *event_buf,
unsigned long len,
559 const char *skipped_log_file,
690 const char *packet,
unsigned long len,
691 const char **event_buf,
692 unsigned long *event_len);
706 const char *event_buf,
886 const char *src_function,
const char *src_file,
889#define THD_ENTER_COND(P1, P2, P3, P4, P5) \
890 thd_enter_cond(P1, P2, P3, P4, P5, __func__, __FILE__, __LINE__)
907 const char *src_function,
const char *src_file,
910#define THD_EXIT_COND(P1, P2) \
911 thd_exit_cond(P1, P2, __func__, __FILE__, __LINE__)
965 unsigned int precision,
int *null_value);
Byte container that provides a storage for serializing session binlog events.
Definition: binlog_ostream.h:174
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
const char * p
Definition: ctype-mb.cc:1227
static int flags[50]
Definition: hp_test1.cc:40
Instrumentation helpers for mysys threads.
unsigned long long int ulonglong
Definition: my_inttypes.h:56
ulonglong my_off_t
Definition: my_inttypes.h:72
uint32_t uint32
Definition: my_inttypes.h:67
uint32 my_thread_id
Definition: my_thread_local.h:34
Logfile log_file
Definition: mysqltest.cc:275
ValueType value(const std::optional< ValueType > &v)
Definition: gtid.h:83
size_t size(const char *const c)
Definition: base64.h:46
int(* after_commit_t)(Trans_param *param)
This callback is called after transaction commit.
Definition: replication.h:268
int(* after_dd_upgrade_t)(Server_state_param *param)
This is called just after an upgrade from MySQL 5.7 populates the data dictionary for the first time.
Definition: replication.h:402
struct Server_state_observer Server_state_observer
Observer server state.
int(* applier_start_t)(Binlog_relay_IO_param *param)
This callback is called when a relay log consumer thread starts.
Definition: replication.h:648
int(* after_send_event_t)(Binlog_transmit_param *param, const char *event_buf, unsigned long len, const char *skipped_log_file, my_off_t skipped_log_pos)
This callback is called after an event packet is sent to the slave or is skipped.
Definition: replication.h:557
int(* thread_stop_t)(Binlog_relay_IO_param *param)
This callback is called when slave IO thread stops.
Definition: replication.h:638
int(* after_reset_slave_t)(Binlog_relay_IO_param *param)
This callback is called after reset replica relay log IO status.
Definition: replication.h:717
int(* thread_start_t)(Binlog_relay_IO_param *param)
This callback is called when slave IO thread starts.
Definition: replication.h:628
struct Trans_context_info Trans_context_info
This represents some of the context in which a transaction is running It summarizes all necessary req...
struct Trans_param Trans_param
Transaction observer parameter.
Binlog_storage_flags
Binlog storage flags.
Definition: replication.h:317
@ BINLOG_STORAGE_IS_SYNCED
Binary log was sync:ed.
Definition: replication.h:319
int register_binlog_relay_io_observer(Binlog_relay_IO_observer *observer, void *p)
Register a binlog relay IO (slave IO thread) observer.
Definition: rpl_handler.cc:1336
Binlog_relay_IO_flags
Binlog relay IO flags.
Definition: replication.h:592
@ BINLOG_RELAY_IS_SYNCED
Binary relay log was sync:ed.
Definition: replication.h:594
int register_server_state_observer(Server_state_observer *observer, void *p)
Register a server state observer.
Definition: rpl_handler.cc:1312
int get_user_var_str(const char *name, char *value, size_t len, unsigned int precision, int *null_value)
Get the value of user variable as a string.
Definition: rpl_handler.cc:333
int(* before_request_transmit_t)(Binlog_relay_IO_param *param, uint32 flags)
This callback is called before slave requesting binlog transmission from master.
Definition: replication.h:674
void thd_exit_cond(void *opaque_thd, const PSI_stage_info *stage, const char *src_function, const char *src_file, int src_line)
Set thread leaving a condition.
Definition: sql_thd_internal_api.cc:203
int unregister_binlog_storage_observer(Binlog_storage_observer *observer, void *p)
Unregister a binlog storage observer.
Definition: rpl_handler.cc:1307
struct Server_state_param Server_state_param
int(* begin_t)(Trans_param *param, int &out_val)
This callback is called before a sql command is executed.
Definition: replication.h:298
struct Trans_table_info Trans_table_info
This represents table metadata involved in a transaction.
int(* after_reset_master_t)(Binlog_transmit_param *param)
This callback is called after resetting master status.
Definition: replication.h:573
int register_trans_observer(Trans_observer *observer, void *p)
Register a transaction observer.
Definition: rpl_handler.cc:1291
int get_user_var_real(const char *name, double *value, int *null_value)
Get the value of user variable as a double precision float number.
Definition: rpl_handler.cc:315
int register_binlog_storage_observer(Binlog_storage_observer *observer, void *p)
Register a binlog storage observer.
Definition: rpl_handler.cc:1299
int(* transmit_stop_t)(Binlog_transmit_param *param)
This callback is called when binlog dumping stops.
Definition: replication.h:500
struct Binlog_storage_observer Binlog_storage_observer
Observe binlog logging storage.
int(* after_recovery_t)(Server_state_param *param)
This callback is called after the end of the recovery procedure.
Definition: replication.h:369
int(* after_server_shutdown_t)(Server_state_param *param)
This callback is called after the end of the shutdown procedure.
Definition: replication.h:391
int(* before_recovery_t)(Server_state_param *param)
This callback is called before the start of the recovery.
Definition: replication.h:346
int(* before_commit_t)(Trans_param *param)
This callback is called before transaction commit.
Definition: replication.h:237
int(* after_sync_t)(Binlog_storage_param *param, const char *log_file, my_off_t log_pos)
Definition: replication.h:442
struct Binlog_relay_IO_observer Binlog_relay_IO_observer
Observes and extends the service of slave IO thread.
int(* before_rollback_t)(Trans_param *param)
This callback is called before transaction rollback.
Definition: replication.h:249
int(* after_read_event_t)(Binlog_relay_IO_param *param, const char *packet, unsigned long len, const char **event_buf, unsigned long *event_len)
This callback is called after read an event packet from master.
Definition: replication.h:689
int unregister_binlog_transmit_observer(Binlog_transmit_observer *observer, void *p)
Unregister a binlog transmit observer.
Definition: rpl_handler.cc:1331
int(* applier_log_event_t)(Binlog_relay_IO_param *param, Trans_param *trans_param, int &out)
This callback is called before event gets applied.
Definition: replication.h:730
int unregister_binlog_relay_io_observer(Binlog_relay_IO_observer *observer, void *p)
Unregister a binlog relay IO (slave IO thread) observer.
Definition: rpl_handler.cc:1341
struct Binlog_storage_param Binlog_storage_param
Binlog storage observer parameters.
int(* before_dml_t)(Trans_param *param, int &out_val)
Definition: replication.h:224
void thd_enter_cond(void *opaque_thd, mysql_cond_t *cond, mysql_mutex_t *mutex, const PSI_stage_info *stage, PSI_stage_info *old_stage, const char *src_function, const char *src_file, int src_line)
Set thread entering a condition.
Definition: sql_thd_internal_api.cc:190
int(* before_server_shutdown_t)(Server_state_param *param)
This callback is called before the start of the shutdown procedure.
Definition: replication.h:380
int(* after_engine_recovery_t)(Server_state_param *param)
This callback is called after the end of the engine recovery.
Definition: replication.h:359
struct Trans_gtid_info Trans_gtid_info
This represents the GTID context of the transaction.
struct Trans_observer Trans_observer
Observes and extends transaction execution.
Trans_flags
Transaction observer flags.
Definition: replication.h:69
@ TRANS_IS_REAL_TRANS
Transaction is a real transaction.
Definition: replication.h:71
int(* before_handle_connection_t)(Server_state_param *param)
This is called just before the server is ready to accept the client connections to the Server/Node.
Definition: replication.h:336
int(* after_flush_t)(Binlog_storage_param *param, const char *log_file, my_off_t log_pos)
This callback is called after binlog has been flushed.
Definition: replication.h:440
struct Binlog_relay_IO_param Binlog_relay_IO_param
Replication binlog relay IO observer parameter.
int(* applier_stop_t)(Binlog_relay_IO_param *param, bool aborted)
This callback is called when a relay log consumer thread stops.
Definition: replication.h:659
int(* after_queue_event_t)(Binlog_relay_IO_param *param, const char *event_buf, unsigned long event_len, uint32 flags)
This callback is called after written an event packet to relay log.
Definition: replication.h:705
int register_binlog_transmit_observer(Binlog_transmit_observer *observer, void *p)
Register a binlog transmit observer.
Definition: rpl_handler.cc:1326
int unregister_trans_observer(Trans_observer *observer, void *p)
Unregister a transaction observer.
Definition: rpl_handler.cc:1295
int get_user_var_int(const char *name, long long int *value, int *null_value)
Get the value of user variable as an integer.
Definition: rpl_handler.cc:297
int(* after_rollback_t)(Trans_param *param)
This callback is called after transaction rollback.
Definition: replication.h:287
int(* transmit_start_t)(Binlog_transmit_param *param, const char *log_file, my_off_t log_pos)
This callback is called when binlog dumping starts.
Definition: replication.h:489
struct Binlog_transmit_param Binlog_transmit_param
Replication binlog transmitter (binlog dump) observer parameter.
int unregister_server_state_observer(Server_state_observer *observer, void *p)
Unregister a server state observer.
Definition: rpl_handler.cc:1320
int(* before_send_event_t)(Binlog_transmit_param *param, unsigned char *packet, unsigned long len, const char *log_file, my_off_t log_pos)
This callback is called before sending an event packet to slave.
Definition: replication.h:537
int(* reserve_header_t)(Binlog_transmit_param *param, unsigned char *header, unsigned long size, unsigned long *len)
This callback is called to reserve bytes in packet header for event transmission.
Definition: replication.h:521
struct Binlog_transmit_observer Binlog_transmit_observer
Observe and extends the binlog dumping thread.
enum_rpl_channel_type
Type of replication channel thread/transaction might be associated to.
Definition: rpl_context.h:49
enum_tx_isolation
Definition: handler.h:3331
case opt name
Definition: sslopt-case.h:29
Observes and extends the service of slave IO thread.
Definition: replication.h:736
applier_start_t applier_start
Definition: replication.h:741
applier_log_event_t applier_log_event
Definition: replication.h:747
after_read_event_t after_read_event
Definition: replication.h:744
after_reset_slave_t after_reset_slave
Definition: replication.h:746
thread_start_t thread_start
Definition: replication.h:739
before_request_transmit_t before_request_transmit
Definition: replication.h:743
after_queue_event_t after_queue_event
Definition: replication.h:745
uint32 len
Definition: replication.h:737
applier_stop_t applier_stop
Definition: replication.h:742
thread_stop_t thread_stop
Definition: replication.h:740
Replication binlog relay IO observer parameter.
Definition: replication.h:600
my_off_t master_log_pos
Definition: replication.h:613
unsigned int port
Definition: replication.h:610
bool source_connection_auto_failover
Definition: replication.h:617
char * channel_name
Definition: replication.h:605
char * host
Definition: replication.h:608
char * master_log_name
Definition: replication.h:612
char * user
Definition: replication.h:609
MYSQL * mysql
Definition: replication.h:615
uint32 server_id
Definition: replication.h:601
my_thread_id thread_id
Definition: replication.h:602
Observe binlog logging storage.
Definition: replication.h:448
uint32 len
Definition: replication.h:449
after_flush_t after_flush
Definition: replication.h:451
after_sync_t after_sync
Definition: replication.h:452
Binlog storage observer parameters.
Definition: replication.h:423
uint32 server_id
Definition: replication.h:424
Observe and extends the binlog dumping thread.
Definition: replication.h:578
before_send_event_t before_send_event
Definition: replication.h:584
after_reset_master_t after_reset_master
Definition: replication.h:586
after_send_event_t after_send_event
Definition: replication.h:585
uint32 len
Definition: replication.h:579
transmit_start_t transmit_start
Definition: replication.h:581
reserve_header_t reserve_header
Definition: replication.h:583
transmit_stop_t transmit_stop
Definition: replication.h:582
Replication binlog transmitter (binlog dump) observer parameter.
Definition: replication.h:458
static const uint32 F_DONT_OBSERVE
Definition: replication.h:463
bool should_observe()
If F_OBSERVE is set by any plugin, then it should observe binlog transmission, even F_DONT_OBSERVE is...
Definition: replication.h:474
void set_observe_flag()
Definition: replication.h:465
static const uint32 F_OBSERVE
Definition: replication.h:462
void set_dont_observe_flag()
Definition: replication.h:466
uint32 server_id
Definition: replication.h:459
uint32 flags
Definition: replication.h:460
Stage instrument information.
Definition: psi_stage_bits.h:74
Observer server state.
Definition: replication.h:407
after_engine_recovery_t after_engine_recovery
Definition: replication.h:412
before_recovery_t before_recovery
Definition: replication.h:411
before_server_shutdown_t before_server_shutdown
Definition: replication.h:414
before_handle_connection_t before_handle_connection
Definition: replication.h:410
after_dd_upgrade_t after_dd_upgrade_from_57
Definition: replication.h:417
after_server_shutdown_t after_server_shutdown
Definition: replication.h:415
uint32 len
Definition: replication.h:408
after_recovery_t after_recovery
Definition: replication.h:413
Definition: replication.h:322
uint32 server_id
Definition: replication.h:323
This represents some of the context in which a transaction is running It summarizes all necessary req...
Definition: replication.h:100
ulong gtid_mode
Definition: replication.h:102
bool parallel_applier_preserve_commit_order
Definition: replication.h:108
bool log_replica_updates
Definition: replication.h:103
enum_tx_isolation tx_isolation
Definition: replication.h:109
ulong parallel_applier_workers
Definition: replication.h:107
ulong binlog_format
Definition: replication.h:106
bool default_table_encryption
Definition: replication.h:111
bool binlog_enabled
Definition: replication.h:101
uint lower_case_table_names
Definition: replication.h:110
ulong binlog_checksum_options
Definition: replication.h:104
This represents the GTID context of the transaction.
Definition: replication.h:117
int sidno
transaction sidno
Definition: replication.h:123
long long int gno
transaction gno
Definition: replication.h:125
ulong type
enum values in enum_gtid_type
Definition: replication.h:121
mysql::gtid::Tsid_plain tsid
transaction specified TSID, filled in the after-commit hook
Definition: replication.h:119
mysql::gtid::Tag_plain automatic_tag
defined tag for automatic GTIDs, propagated in the before-commit hook
Definition: replication.h:127
Observes and extends transaction execution.
Definition: replication.h:303
before_commit_t before_commit
Definition: replication.h:307
begin_t begin
Definition: replication.h:311
before_dml_t before_dml
Definition: replication.h:306
before_rollback_t before_rollback
Definition: replication.h:308
after_commit_t after_commit
Definition: replication.h:309
uint32 len
Definition: replication.h:304
after_rollback_t after_rollback
Definition: replication.h:310
Transaction observer parameter.
Definition: replication.h:134
THD * thd
pointer to server THD
Definition: replication.h:215
Binlog_cache_storage * trx_cache_log
Definition: replication.h:158
const char * server_uuid
Definition: replication.h:136
enum_rpl_channel_type rpl_channel_type
Replication channel info associated to this transaction/THD.
Definition: replication.h:183
uint32 server_id
Definition: replication.h:135
ulonglong cache_log_max_size
Definition: replication.h:160
my_off_t log_pos
Definition: replication.h:148
const char * log_file
Definition: replication.h:147
unsigned long long * original_commit_timestamp
pointer to the status var original_commit_timestamp
Definition: replication.h:180
Binlog_cache_storage * stmt_cache_log
Definition: replication.h:159
ulong group_replication_consistency
contains the session value of group_replication_consistency
Definition: replication.h:186
Trans_gtid_info gtid_info
Definition: replication.h:153
Trans_context_info trans_ctx_info
Definition: replication.h:177
my_thread_id thread_id
Definition: replication.h:137
uint32_t * immediate_server_version
pointer to immediate_server_version
Definition: replication.h:195
uint number_of_tables
Definition: replication.h:172
Trans_table_info * tables_info
Definition: replication.h:171
bool is_atomic_ddl
Definition: replication.h:165
uint32_t * original_server_version
pointer to original_server_version
Definition: replication.h:192
ulong hold_timeout
value of session wait_timeout, timeout to hold transaction
Definition: replication.h:189
bool is_create_table_as_query_block
Definition: replication.h:212
uint32 flags
Definition: replication.h:138
This represents table metadata involved in a transaction.
Definition: replication.h:77
int db_type
The db_type of the storage engine used by the table.
Definition: replication.h:81
bool has_cascade_foreign_key
information to store if the table has foreign key with 'CASCADE' clause.
Definition: replication.h:83
const char * table_name
Definition: replication.h:78
uint number_of_primary_keys
Definition: replication.h:79
Tag representation so that:
Definition: tag_plain.h:47
TSID representation so that:
Definition: tsid_plain.h:40
An instrumented cond structure.
Definition: mysql_cond_bits.h:50
An instrumented mutex structure.
Definition: mysql_mutex_bits.h:50
Struct to share server ssl variables.
Definition: replication.h:49
char * ssl_crl
Definition: replication.h:57
char * tls_ciphersuites
Definition: replication.h:53
char * ssl_cert
Definition: replication.h:54
char * ssl_key
Definition: replication.h:56
char * tls_version
Definition: replication.h:52
void init()
Definition: rpl_group_replication.cc:71
void deinit()
Definition: rpl_group_replication.cc:84
char * ssl_capath
Definition: replication.h:51
char * ssl_ca
Definition: replication.h:50
char * ssl_cipher
Definition: replication.h:55
unsigned int ssl_fips_mode
Definition: replication.h:59
char * ssl_crlpath
Definition: replication.h:58