mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-6247: Merge 10.0-galera to 10.1.
Merged lp:maria/maria-10.0-galera up to revision 3879. Added a new functions to handler API to forcefully abort_transaction, producing fake_trx_id, get_checkpoint and set_checkpoint for XA. These were added for future possiblity to add more storage engines that could use galera replication.
This commit is contained in:
@ -50,12 +50,13 @@ void set_thd_stage_info(void *thd,
|
||||
const char *calling_func,
|
||||
const char *calling_file,
|
||||
const unsigned int calling_line);
|
||||
|
||||
|
||||
#define THD_STAGE_INFO(thd, stage) \
|
||||
(thd)->enter_stage(& stage, NULL, __func__, __FILE__, __LINE__)
|
||||
|
||||
#include "my_apc.h"
|
||||
#include "rpl_gtid.h"
|
||||
#include "wsrep_mysqld.h"
|
||||
|
||||
class Reprepare_observer;
|
||||
class Relay_log_info;
|
||||
@ -638,6 +639,12 @@ typedef struct system_variables
|
||||
ulong wt_timeout_short, wt_deadlock_search_depth_short;
|
||||
ulong wt_timeout_long, wt_deadlock_search_depth_long;
|
||||
|
||||
#ifdef WITH_WSREP
|
||||
my_bool wsrep_on;
|
||||
my_bool wsrep_causal_reads;
|
||||
uint wsrep_sync_wait;
|
||||
ulong wsrep_retry_autocommit;
|
||||
#endif
|
||||
double long_query_time_double;
|
||||
|
||||
my_bool pseudo_slave_mode;
|
||||
@ -2072,7 +2079,7 @@ public:
|
||||
int is_current_stmt_binlog_format_row() const {
|
||||
DBUG_ASSERT(current_stmt_binlog_format == BINLOG_FORMAT_STMT ||
|
||||
current_stmt_binlog_format == BINLOG_FORMAT_ROW);
|
||||
return current_stmt_binlog_format == BINLOG_FORMAT_ROW;
|
||||
return (WSREP_FORMAT((ulong)current_stmt_binlog_format) == BINLOG_FORMAT_ROW);
|
||||
}
|
||||
|
||||
enum binlog_filter_state
|
||||
@ -2725,6 +2732,45 @@ public:
|
||||
query_id_t first_query_id;
|
||||
} binlog_evt_union;
|
||||
|
||||
#ifdef WITH_WSREP
|
||||
const bool wsrep_applier; /* dedicated slave applier thread */
|
||||
bool wsrep_applier_closing; /* applier marked to close */
|
||||
bool wsrep_client_thread; /* to identify client threads*/
|
||||
bool wsrep_PA_safe;
|
||||
bool wsrep_converted_lock_session;
|
||||
bool wsrep_apply_toi; /* applier processing in TOI */
|
||||
enum wsrep_exec_mode wsrep_exec_mode;
|
||||
query_id_t wsrep_last_query_id;
|
||||
enum wsrep_query_state wsrep_query_state;
|
||||
enum wsrep_conflict_state wsrep_conflict_state;
|
||||
mysql_mutex_t LOCK_wsrep_thd;
|
||||
mysql_cond_t COND_wsrep_thd;
|
||||
// changed from wsrep_seqno_t to wsrep_trx_meta_t in wsrep API rev 75
|
||||
// wsrep_seqno_t wsrep_trx_seqno;
|
||||
wsrep_trx_meta_t wsrep_trx_meta;
|
||||
uint32 wsrep_rand;
|
||||
Relay_log_info* wsrep_rli;
|
||||
rpl_group_info* wsrep_rgi;
|
||||
wsrep_ws_handle_t wsrep_ws_handle;
|
||||
ulong wsrep_retry_counter; // of autocommit
|
||||
char* wsrep_retry_query;
|
||||
size_t wsrep_retry_query_len;
|
||||
enum enum_server_command wsrep_retry_command;
|
||||
enum wsrep_consistency_check_mode
|
||||
wsrep_consistency_check;
|
||||
wsrep_stats_var* wsrep_status_vars;
|
||||
int wsrep_mysql_replicated;
|
||||
const char* wsrep_TOI_pre_query; /* a query to apply before
|
||||
the actual TOI query */
|
||||
size_t wsrep_TOI_pre_query_len;
|
||||
wsrep_po_handle_t wsrep_po_handle;
|
||||
size_t wsrep_po_cnt;
|
||||
#ifdef GTID_SUPPORT
|
||||
rpl_sid wsrep_po_sid;
|
||||
#endif /* GTID_SUPPORT */
|
||||
void* wsrep_apply_format;
|
||||
#endif /* WITH_WSREP */
|
||||
char wsrep_info[128]; /* string for dynamic proc info */
|
||||
/**
|
||||
Internal parser state.
|
||||
Note that since the parser is not re-entrant, we keep only one parser
|
||||
@ -2756,7 +2802,8 @@ public:
|
||||
/* Debug Sync facility. See debug_sync.cc. */
|
||||
struct st_debug_sync_control *debug_sync_control;
|
||||
#endif /* defined(ENABLED_DEBUG_SYNC) */
|
||||
THD();
|
||||
THD(bool is_applier= false);
|
||||
|
||||
~THD();
|
||||
|
||||
void init(void);
|
||||
@ -3270,7 +3317,7 @@ public:
|
||||
tests fail and so force them to propagate the
|
||||
lex->binlog_row_based_if_mixed upwards to the caller.
|
||||
*/
|
||||
if ((variables.binlog_format == BINLOG_FORMAT_MIXED) &&
|
||||
if ((WSREP_FORMAT(variables.binlog_format) == BINLOG_FORMAT_MIXED) &&
|
||||
(in_sub_stmt == 0))
|
||||
set_current_stmt_binlog_format_row();
|
||||
|
||||
@ -3322,7 +3369,7 @@ public:
|
||||
show_system_thread(system_thread)));
|
||||
if (in_sub_stmt == 0)
|
||||
{
|
||||
if (variables.binlog_format == BINLOG_FORMAT_ROW)
|
||||
if (WSREP_FORMAT(variables.binlog_format) == BINLOG_FORMAT_ROW)
|
||||
set_current_stmt_binlog_format_row();
|
||||
else if (temporary_tables == NULL)
|
||||
set_current_stmt_binlog_format_stmt();
|
||||
|
Reference in New Issue
Block a user