36#define MYSQL_THD THD *
38#define MYSQL_THD void *
216#define TRANS_PARAM_ZERO(trans_param_obj) \
217 memset(&trans_param_obj, 0, sizeof(Trans_param));
516 unsigned char *header,
unsigned long size,
532 unsigned char *packet,
unsigned long len,
552 const char *event_buf,
unsigned long len,
553 const char *skipped_log_file,
684 const char *packet,
unsigned long len,
685 const char **event_buf,
686 unsigned long *event_len);
700 const char *event_buf,
880 const char *src_function,
const char *src_file,
883#define THD_ENTER_COND(P1, P2, P3, P4, P5) \
884 thd_enter_cond(P1, P2, P3, P4, P5, __func__, __FILE__, __LINE__)
901 const char *src_function,
const char *src_file,
904#define THD_EXIT_COND(P1, P2) \
905 thd_exit_cond(P1, P2, __func__, __FILE__, __LINE__)
959 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:263
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:397
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:642
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:551
int(* thread_stop_t)(Binlog_relay_IO_param *param)
This callback is called when slave IO thread stops.
Definition: replication.h:632
int(* after_reset_slave_t)(Binlog_relay_IO_param *param)
This callback is called after reset slave relay log IO status.
Definition: replication.h:711
int(* thread_start_t)(Binlog_relay_IO_param *param)
This callback is called when slave IO thread starts.
Definition: replication.h:622
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:312
@ BINLOG_STORAGE_IS_SYNCED
Binary log was sync:ed.
Definition: replication.h:314
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:1330
Binlog_relay_IO_flags
Binlog relay IO flags.
Definition: replication.h:586
@ BINLOG_RELAY_IS_SYNCED
Binary relay log was sync:ed.
Definition: replication.h:588
int register_server_state_observer(Server_state_observer *observer, void *p)
Register a server state observer.
Definition: rpl_handler.cc:1306
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:668
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:1301
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:293
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:567
int register_trans_observer(Trans_observer *observer, void *p)
Register a transaction observer.
Definition: rpl_handler.cc:1285
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:1293
int(* transmit_stop_t)(Binlog_transmit_param *param)
This callback is called when binlog dumping stops.
Definition: replication.h:494
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:364
int(* after_server_shutdown_t)(Server_state_param *param)
This callback is called after the end of the shutdown procedure.
Definition: replication.h:386
int(* before_recovery_t)(Server_state_param *param)
This callback is called before the start of the recovery.
Definition: replication.h:341
int(* before_commit_t)(Trans_param *param)
This callback is called before transaction commit.
Definition: replication.h:232
int(* after_sync_t)(Binlog_storage_param *param, const char *log_file, my_off_t log_pos)
Definition: replication.h:436
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:244
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:683
int unregister_binlog_transmit_observer(Binlog_transmit_observer *observer, void *p)
Unregister a binlog transmit observer.
Definition: rpl_handler.cc:1325
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:724
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:1335
struct Binlog_storage_param Binlog_storage_param
Binlog storage observer parameters.
int(* before_dml_t)(Trans_param *param, int &out_val)
Definition: replication.h:219
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:375
int(* after_engine_recovery_t)(Server_state_param *param)
This callback is called after the end of the engine recovery.
Definition: replication.h:354
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:331
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:434
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:653
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:699
int register_binlog_transmit_observer(Binlog_transmit_observer *observer, void *p)
Register a binlog transmit observer.
Definition: rpl_handler.cc:1320
int unregister_trans_observer(Trans_observer *observer, void *p)
Unregister a transaction observer.
Definition: rpl_handler.cc:1289
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:282
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:483
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:1314
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:531
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:515
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:3029
case opt name
Definition: sslopt-case.h:33
Observes and extends the service of slave IO thread.
Definition: replication.h:730
applier_start_t applier_start
Definition: replication.h:735
applier_log_event_t applier_log_event
Definition: replication.h:741
after_read_event_t after_read_event
Definition: replication.h:738
after_reset_slave_t after_reset_slave
Definition: replication.h:740
thread_start_t thread_start
Definition: replication.h:733
before_request_transmit_t before_request_transmit
Definition: replication.h:737
after_queue_event_t after_queue_event
Definition: replication.h:739
uint32 len
Definition: replication.h:731
applier_stop_t applier_stop
Definition: replication.h:736
thread_stop_t thread_stop
Definition: replication.h:734
Replication binlog relay IO observer parameter.
Definition: replication.h:594
my_off_t master_log_pos
Definition: replication.h:607
unsigned int port
Definition: replication.h:604
bool source_connection_auto_failover
Definition: replication.h:611
char * channel_name
Definition: replication.h:599
char * host
Definition: replication.h:602
char * master_log_name
Definition: replication.h:606
char * user
Definition: replication.h:603
MYSQL * mysql
Definition: replication.h:609
uint32 server_id
Definition: replication.h:595
my_thread_id thread_id
Definition: replication.h:596
Observe binlog logging storage.
Definition: replication.h:442
uint32 len
Definition: replication.h:443
after_flush_t after_flush
Definition: replication.h:445
after_sync_t after_sync
Definition: replication.h:446
Binlog storage observer parameters.
Definition: replication.h:417
uint32 server_id
Definition: replication.h:418
Observe and extends the binlog dumping thread.
Definition: replication.h:572
before_send_event_t before_send_event
Definition: replication.h:578
after_reset_master_t after_reset_master
Definition: replication.h:580
after_send_event_t after_send_event
Definition: replication.h:579
uint32 len
Definition: replication.h:573
transmit_start_t transmit_start
Definition: replication.h:575
reserve_header_t reserve_header
Definition: replication.h:577
transmit_stop_t transmit_stop
Definition: replication.h:576
Replication binlog transmitter (binlog dump) observer parameter.
Definition: replication.h:452
static const uint32 F_DONT_OBSERVE
Definition: replication.h:457
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:468
void set_observe_flag()
Definition: replication.h:459
static const uint32 F_OBSERVE
Definition: replication.h:456
void set_dont_observe_flag()
Definition: replication.h:460
uint32 server_id
Definition: replication.h:453
uint32 flags
Definition: replication.h:454
Stage instrument information.
Definition: psi_stage_bits.h:74
Observer server state.
Definition: replication.h:402
after_engine_recovery_t after_engine_recovery
Definition: replication.h:407
before_recovery_t before_recovery
Definition: replication.h:406
before_server_shutdown_t before_server_shutdown
Definition: replication.h:409
before_handle_connection_t before_handle_connection
Definition: replication.h:405
after_dd_upgrade_t after_dd_upgrade_from_57
Definition: replication.h:411
after_server_shutdown_t after_server_shutdown
Definition: replication.h:410
uint32 len
Definition: replication.h:403
after_recovery_t after_recovery
Definition: replication.h:408
Definition: replication.h:317
uint32 server_id
Definition: replication.h:318
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:298
before_commit_t before_commit
Definition: replication.h:302
begin_t begin
Definition: replication.h:306
before_dml_t before_dml
Definition: replication.h:301
before_rollback_t before_rollback
Definition: replication.h:303
after_commit_t after_commit
Definition: replication.h:304
uint32 len
Definition: replication.h:299
after_rollback_t after_rollback
Definition: replication.h:305
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:210
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