36#define MYSQL_THD THD *
38#define MYSQL_THD void *
204#define TRANS_PARAM_ZERO(trans_param_obj) \
205 memset(&trans_param_obj, 0, sizeof(Trans_param));
504 unsigned char *header,
unsigned long size,
520 unsigned char *packet,
unsigned long len,
540 const char *event_buf,
unsigned long len,
541 const char *skipped_log_file,
672 const char *packet,
unsigned long len,
673 const char **event_buf,
674 unsigned long *event_len);
688 const char *event_buf,
868 const char *src_function,
const char *src_file,
871#define THD_ENTER_COND(P1, P2, P3, P4, P5) \
872 thd_enter_cond(P1, P2, P3, P4, P5, __func__, __FILE__, __LINE__)
889 const char *src_function,
const char *src_file,
892#define THD_EXIT_COND(P1, P2) \
893 thd_exit_cond(P1, P2, __func__, __FILE__, __LINE__)
947 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:34
const char * p
Definition: ctype-mb.cc:1237
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:263
int(* after_commit_t)(Trans_param *param)
This callback is called after transaction commit.
Definition: replication.h:251
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:385
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:630
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:539
int(* thread_stop_t)(Binlog_relay_IO_param *param)
This callback is called when slave IO thread stops.
Definition: replication.h:620
int(* after_reset_slave_t)(Binlog_relay_IO_param *param)
This callback is called after reset slave relay log IO status.
Definition: replication.h:699
int(* thread_start_t)(Binlog_relay_IO_param *param)
This callback is called when slave IO thread starts.
Definition: replication.h:610
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:300
@ BINLOG_STORAGE_IS_SYNCED
Binary log was sync:ed.
Definition: replication.h:302
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:1329
Binlog_relay_IO_flags
Binlog relay IO flags.
Definition: replication.h:574
@ BINLOG_RELAY_IS_SYNCED
Binary relay log was sync:ed.
Definition: replication.h:576
int register_server_state_observer(Server_state_observer *observer, void *p)
Register a server state observer.
Definition: rpl_handler.cc:1305
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:332
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:656
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:201
int unregister_binlog_storage_observer(Binlog_storage_observer *observer, void *p)
Unregister a binlog storage observer.
Definition: rpl_handler.cc:1300
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:281
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:555
int register_trans_observer(Trans_observer *observer, void *p)
Register a transaction observer.
Definition: rpl_handler.cc:1284
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:314
int register_binlog_storage_observer(Binlog_storage_observer *observer, void *p)
Register a binlog storage observer.
Definition: rpl_handler.cc:1292
int(* transmit_stop_t)(Binlog_transmit_param *param)
This callback is called when binlog dumping stops.
Definition: replication.h:482
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:352
int(* after_server_shutdown_t)(Server_state_param *param)
This callback is called after the end of the shutdown procedure.
Definition: replication.h:374
int(* before_recovery_t)(Server_state_param *param)
This callback is called before the start of the recovery.
Definition: replication.h:329
int(* before_commit_t)(Trans_param *param)
This callback is called before transaction commit.
Definition: replication.h:220
int(* after_sync_t)(Binlog_storage_param *param, const char *log_file, my_off_t log_pos)
Definition: replication.h:424
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:232
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:671
int unregister_binlog_transmit_observer(Binlog_transmit_observer *observer, void *p)
Unregister a binlog transmit observer.
Definition: rpl_handler.cc:1324
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:712
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:1334
struct Binlog_storage_param Binlog_storage_param
Binlog storage observer parameters.
int(* before_dml_t)(Trans_param *param, int &out_val)
Definition: replication.h:207
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:188
int(* before_server_shutdown_t)(Server_state_param *param)
This callback is called before the start of the shutdown procedure.
Definition: replication.h:363
int(* after_engine_recovery_t)(Server_state_param *param)
This callback is called after the end of the engine recovery.
Definition: replication.h:342
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:68
@ TRANS_IS_REAL_TRANS
Transaction is a real transaction.
Definition: replication.h:70
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:319
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:422
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:641
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:687
int register_binlog_transmit_observer(Binlog_transmit_observer *observer, void *p)
Register a binlog transmit observer.
Definition: rpl_handler.cc:1319
int unregister_trans_observer(Trans_observer *observer, void *p)
Unregister a transaction observer.
Definition: rpl_handler.cc:1288
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:296
int(* after_rollback_t)(Trans_param *param)
This callback is called after transaction rollback.
Definition: replication.h:270
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:471
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:1313
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:519
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:503
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:3028
case opt name
Definition: sslopt-case.h:33
Observes and extends the service of slave IO thread.
Definition: replication.h:718
applier_start_t applier_start
Definition: replication.h:723
applier_log_event_t applier_log_event
Definition: replication.h:729
after_read_event_t after_read_event
Definition: replication.h:726
after_reset_slave_t after_reset_slave
Definition: replication.h:728
thread_start_t thread_start
Definition: replication.h:721
before_request_transmit_t before_request_transmit
Definition: replication.h:725
after_queue_event_t after_queue_event
Definition: replication.h:727
uint32 len
Definition: replication.h:719
applier_stop_t applier_stop
Definition: replication.h:724
thread_stop_t thread_stop
Definition: replication.h:722
Replication binlog relay IO observer parameter.
Definition: replication.h:582
my_off_t master_log_pos
Definition: replication.h:595
unsigned int port
Definition: replication.h:592
bool source_connection_auto_failover
Definition: replication.h:599
char * channel_name
Definition: replication.h:587
char * host
Definition: replication.h:590
char * master_log_name
Definition: replication.h:594
char * user
Definition: replication.h:591
MYSQL * mysql
Definition: replication.h:597
uint32 server_id
Definition: replication.h:583
my_thread_id thread_id
Definition: replication.h:584
Observe binlog logging storage.
Definition: replication.h:430
uint32 len
Definition: replication.h:431
after_flush_t after_flush
Definition: replication.h:433
after_sync_t after_sync
Definition: replication.h:434
Binlog storage observer parameters.
Definition: replication.h:405
uint32 server_id
Definition: replication.h:406
Observe and extends the binlog dumping thread.
Definition: replication.h:560
before_send_event_t before_send_event
Definition: replication.h:566
after_reset_master_t after_reset_master
Definition: replication.h:568
after_send_event_t after_send_event
Definition: replication.h:567
uint32 len
Definition: replication.h:561
transmit_start_t transmit_start
Definition: replication.h:563
reserve_header_t reserve_header
Definition: replication.h:565
transmit_stop_t transmit_stop
Definition: replication.h:564
Replication binlog transmitter (binlog dump) observer parameter.
Definition: replication.h:440
static const uint32 F_DONT_OBSERVE
Definition: replication.h:445
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:456
void set_observe_flag()
Definition: replication.h:447
static const uint32 F_OBSERVE
Definition: replication.h:444
void set_dont_observe_flag()
Definition: replication.h:448
uint32 server_id
Definition: replication.h:441
uint32 flags
Definition: replication.h:442
Stage instrument information.
Definition: psi_stage_bits.h:74
Observer server state.
Definition: replication.h:390
after_engine_recovery_t after_engine_recovery
Definition: replication.h:395
before_recovery_t before_recovery
Definition: replication.h:394
before_server_shutdown_t before_server_shutdown
Definition: replication.h:397
before_handle_connection_t before_handle_connection
Definition: replication.h:393
after_dd_upgrade_t after_dd_upgrade_from_57
Definition: replication.h:399
after_server_shutdown_t after_server_shutdown
Definition: replication.h:398
uint32 len
Definition: replication.h:391
after_recovery_t after_recovery
Definition: replication.h:396
Definition: replication.h:305
uint32 server_id
Definition: replication.h:306
This represents some of the context in which a transaction is running It summarizes all necessary req...
Definition: replication.h:99
ulong gtid_mode
Definition: replication.h:101
ulong rli_repository_type
Definition: replication.h:109
bool parallel_applier_preserve_commit_order
Definition: replication.h:113
bool log_replica_updates
Definition: replication.h:102
enum_tx_isolation tx_isolation
Definition: replication.h:114
ulong parallel_applier_workers
Definition: replication.h:112
ulong mi_repository_type
Definition: replication.h:108
ulong binlog_format
Definition: replication.h:105
ulong transaction_write_set_extraction
Definition: replication.h:107
bool default_table_encryption
Definition: replication.h:116
bool binlog_enabled
Definition: replication.h:100
ulong parallel_applier_type
Definition: replication.h:111
uint lower_case_table_names
Definition: replication.h:115
ulong binlog_checksum_options
Definition: replication.h:103
This represents the GTID context of the transaction.
Definition: replication.h:122
int sidno
Definition: replication.h:124
long long int gno
Definition: replication.h:125
ulong type
Definition: replication.h:123
Observes and extends transaction execution.
Definition: replication.h:286
before_commit_t before_commit
Definition: replication.h:290
begin_t begin
Definition: replication.h:294
before_dml_t before_dml
Definition: replication.h:289
before_rollback_t before_rollback
Definition: replication.h:291
after_commit_t after_commit
Definition: replication.h:292
uint32 len
Definition: replication.h:287
after_rollback_t after_rollback
Definition: replication.h:293
Transaction observer parameter.
Definition: replication.h:132
Binlog_cache_storage * trx_cache_log
Definition: replication.h:156
const char * server_uuid
Definition: replication.h:134
enum_rpl_channel_type rpl_channel_type
Replication channel info associated to this transaction/THD.
Definition: replication.h:181
uint32 server_id
Definition: replication.h:133
ulonglong cache_log_max_size
Definition: replication.h:158
my_off_t log_pos
Definition: replication.h:146
const char * log_file
Definition: replication.h:145
unsigned long long * original_commit_timestamp
pointer to the status var original_commit_timestamp
Definition: replication.h:178
Binlog_cache_storage * stmt_cache_log
Definition: replication.h:157
ulong group_replication_consistency
contains the session value of group_replication_consistency
Definition: replication.h:184
Trans_gtid_info gtid_info
Definition: replication.h:151
Trans_context_info trans_ctx_info
Definition: replication.h:175
my_thread_id thread_id
Definition: replication.h:135
uint32_t * immediate_server_version
pointer to immediate_server_version
Definition: replication.h:193
uint number_of_tables
Definition: replication.h:170
Trans_table_info * tables_info
Definition: replication.h:169
bool is_atomic_ddl
Definition: replication.h:163
uint32_t * original_server_version
pointer to original_server_version
Definition: replication.h:190
ulong hold_timeout
value of session wait_timeout, timeout to hold transaction
Definition: replication.h:187
bool is_create_table_as_query_block
Definition: replication.h:198
uint32 flags
Definition: replication.h:136
This represents table metadata involved in a transaction.
Definition: replication.h:76
int db_type
The db_type of the storage engine used by the table.
Definition: replication.h:80
bool has_cascade_foreign_key
information to store if the table has foreign key with 'CASCADE' clause.
Definition: replication.h:82
const char * table_name
Definition: replication.h:77
uint number_of_primary_keys
Definition: replication.h:78
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:48
char * ssl_crl
Definition: replication.h:56
char * tls_ciphersuites
Definition: replication.h:52
char * ssl_cert
Definition: replication.h:53
char * ssl_key
Definition: replication.h:55
char * tls_version
Definition: replication.h:51
void init()
Definition: rpl_group_replication.cc:73
void deinit()
Definition: rpl_group_replication.cc:86
char * ssl_capath
Definition: replication.h:50
char * ssl_ca
Definition: replication.h:49
char * ssl_cipher
Definition: replication.h:54
unsigned int ssl_fips_mode
Definition: replication.h:58
char * ssl_crlpath
Definition: replication.h:57
unsigned int uint
Definition: uca9-dump.cc:75