summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
Diffstat (limited to 'sql')
-rw-r--r--sql/events.cc7
-rw-r--r--sql/log.cc10
-rw-r--r--sql/sql_base.cc4
-rw-r--r--sql/sql_class.cc33
-rw-r--r--sql/sql_class.h23
-rw-r--r--sql/sql_parse.cc7
-rw-r--r--sql/wsrep_thd.cc2
7 files changed, 45 insertions, 41 deletions
diff --git a/sql/events.cc b/sql/events.cc
index fa40086c1f7..d42a5d7b0a0 100644
--- a/sql/events.cc
+++ b/sql/events.cc
@@ -1131,8 +1131,11 @@ Events::load_events_from_db(THD *thd)
goto end;
}
#ifdef WITH_WSREP
- // when SST from master node who initials event, the event status is ENABLED
- // this is problematic because there are two nodes with same events and both enabled.
+ /*
+ When SST from master node who initials event, the event status is ENABLED
+ this is problematic because there are two nodes with same events and
+ both enabled.
+ */
if (WSREP(thd) && et->originator != thd->variables.server_id)
{
store_record(table, record[1]);
diff --git a/sql/log.cc b/sql/log.cc
index 9c6de086a13..8ad6556e7c4 100644
--- a/sql/log.cc
+++ b/sql/log.cc
@@ -1910,12 +1910,12 @@ static bool trans_cannot_safely_rollback(THD *thd, bool all)
return ((thd->variables.option_bits & OPTION_KEEP_LOG) ||
(trans_has_updated_non_trans_table(thd) &&
- WSREP_FORMAT(thd->variables.binlog_format) == BINLOG_FORMAT_STMT) ||
+ WSREP_FORMAT((enum enum_binlog_format) thd->variables.binlog_format) == BINLOG_FORMAT_STMT) ||
(cache_mngr->trx_cache.changes_to_non_trans_temp_table() &&
- WSREP_FORMAT(thd->variables.binlog_format) == BINLOG_FORMAT_MIXED) ||
+ WSREP_FORMAT((enum enum_binlog_format) thd->variables.binlog_format) == BINLOG_FORMAT_MIXED) ||
(trans_has_updated_non_trans_table(thd) &&
ending_single_stmt_trans(thd,all) &&
- WSREP_FORMAT(thd->variables.binlog_format) == BINLOG_FORMAT_MIXED));
+ WSREP_FORMAT((enum enum_binlog_format) thd->variables.binlog_format) == BINLOG_FORMAT_MIXED));
}
@@ -2064,9 +2064,9 @@ static int binlog_rollback(handlerton *hton, THD *thd, bool all)
else if (ending_trans(thd, all) ||
(!(thd->variables.option_bits & OPTION_KEEP_LOG) &&
(!stmt_has_updated_non_trans_table(thd) ||
- WSREP_FORMAT(thd->variables.binlog_format) != BINLOG_FORMAT_STMT) &&
+ WSREP_FORMAT((enum enum_binlog_format) thd->variables.binlog_format) != BINLOG_FORMAT_STMT) &&
(!cache_mngr->trx_cache.changes_to_non_trans_temp_table() ||
- WSREP_FORMAT(thd->variables.binlog_format) != BINLOG_FORMAT_MIXED)))
+ WSREP_FORMAT((enum enum_binlog_format) thd->variables.binlog_format) != BINLOG_FORMAT_MIXED)))
error= binlog_truncate_trx_cache(thd, cache_mngr, all);
}
diff --git a/sql/sql_base.cc b/sql/sql_base.cc
index 356f672657e..a23c71dfc1c 100644
--- a/sql/sql_base.cc
+++ b/sql/sql_base.cc
@@ -3558,7 +3558,7 @@ thr_lock_type read_lock_type_for_table(THD *thd,
*/
bool log_on= mysql_bin_log.is_open() && thd->variables.sql_log_bin;
ulong binlog_format= thd->variables.binlog_format;
- if ((log_on == FALSE) || (WSREP_FORMAT(binlog_format) == BINLOG_FORMAT_ROW) ||
+ if ((log_on == FALSE) || (WSREP_FORMAT((enum enum_binlog_format) binlog_format) == BINLOG_FORMAT_ROW) ||
(table_list->table->s->table_category == TABLE_CATEGORY_LOG) ||
(table_list->table->s->table_category == TABLE_CATEGORY_PERFORMANCE) ||
!(is_update_query(prelocking_ctx->sql_command) ||
@@ -5327,7 +5327,7 @@ bool lock_tables(THD *thd, TABLE_LIST *tables, uint count,
We can solve these problems in mixed mode by switching to binlogging
if at least one updated table is used by sub-statement
*/
- if (WSREP_FORMAT(thd->variables.binlog_format) != BINLOG_FORMAT_ROW && tables &&
+ if (WSREP_FORMAT((enum enum_binlog_format) thd->variables.binlog_format) != BINLOG_FORMAT_ROW && tables &&
has_write_table_with_auto_increment(thd->lex->first_not_own_table()))
thd->lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_AUTOINC_COLUMNS);
}
diff --git a/sql/sql_class.cc b/sql/sql_class.cc
index 9b899464c4b..c8c03da0471 100644
--- a/sql/sql_class.cc
+++ b/sql/sql_class.cc
@@ -879,8 +879,8 @@ extern "C" void thd_kill_timeout(THD* thd)
THD::THD(bool is_wsrep_applier)
- :Statement(&main_lex, &main_mem_root, STMT_CONVENTIONAL_EXECUTION,
- /* statement id */ 0),
+ :Statement(&main_lex, &main_mem_root, STMT_CONVENTIONAL_EXECUTION,
+ /* statement id */ 0),
rli_fake(0), rgi_fake(0), rgi_slave(NULL),
in_sub_stmt(0), log_all_errors(0),
binlog_unsafe_warning_flags(0),
@@ -913,16 +913,17 @@ THD::THD(bool is_wsrep_applier)
debug_sync_control(0),
#endif /* defined(ENABLED_DEBUG_SYNC) */
wait_for_commit_ptr(0),
- main_da(0, false, false),
+ main_da(0, false, false),
m_stmt_da(&main_da)
#ifdef WITH_WSREP
- ,wsrep_applier(is_wsrep_applier)
- ,wsrep_applier_closing(false)
- ,wsrep_client_thread(false)
- ,wsrep_apply_toi(false)
- ,wsrep_po_handle(WSREP_PO_INITIALIZER)
- ,wsrep_po_cnt(0)
- ,wsrep_apply_format(0)
+ ,
+ wsrep_applier(is_wsrep_applier),
+ wsrep_applier_closing(false),
+ wsrep_client_thread(false),
+ wsrep_apply_toi(false),
+ wsrep_po_handle(WSREP_PO_INITIALIZER),
+ wsrep_po_cnt(0),
+ wsrep_apply_format(0)
#endif
{
ulong tmp;
@@ -4349,7 +4350,7 @@ extern "C" int thd_binlog_format(const MYSQL_THD thd)
{
if (((WSREP(thd) && wsrep_emulate_bin_log) || mysql_bin_log.is_open()) &&
thd->variables.option_bits & OPTION_BIN_LOG)
- return (int) WSREP_FORMAT(thd->variables.binlog_format);
+ return (int) WSREP_FORMAT((enum enum_binlog_format) thd->variables.binlog_format);
else
return BINLOG_FORMAT_UNSPEC;
}
@@ -5079,7 +5080,7 @@ int THD::decide_logging_format(TABLE_LIST *tables)
binlog by filtering rules.
*/
if (mysql_bin_log.is_open() && (variables.option_bits & OPTION_BIN_LOG) &&
- !(WSREP_FORMAT(variables.binlog_format) == BINLOG_FORMAT_STMT &&
+ !(WSREP_FORMAT((enum enum_binlog_format) variables.binlog_format) == BINLOG_FORMAT_STMT &&
!binlog_filter->db_ok(db)))
{
/*
@@ -5289,7 +5290,7 @@ int THD::decide_logging_format(TABLE_LIST *tables)
*/
my_error((error= ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE), MYF(0));
}
- else if (WSREP_FORMAT(variables.binlog_format) == BINLOG_FORMAT_ROW &&
+ else if (WSREP_FORMAT((enum enum_binlog_format) variables.binlog_format) == BINLOG_FORMAT_ROW &&
sqlcom_can_generate_row_events(this))
{
/*
@@ -5318,7 +5319,7 @@ int THD::decide_logging_format(TABLE_LIST *tables)
else
{
/* binlog_format = STATEMENT */
- if (WSREP_FORMAT(variables.binlog_format) == BINLOG_FORMAT_STMT)
+ if (WSREP_FORMAT((enum enum_binlog_format) variables.binlog_format) == BINLOG_FORMAT_STMT)
{
if (lex->is_stmt_row_injection())
{
@@ -5446,11 +5447,11 @@ int THD::decide_logging_format(TABLE_LIST *tables)
DBUG_PRINT("info", ("decision: no logging since "
"mysql_bin_log.is_open() = %d "
"and (options & OPTION_BIN_LOG) = 0x%llx "
- "and binlog_format = %lu "
+ "and binlog_format = %u "
"and binlog_filter->db_ok(db) = %d",
mysql_bin_log.is_open(),
(variables.option_bits & OPTION_BIN_LOG),
- WSREP_FORMAT(variables.binlog_format),
+ (uint) WSREP_FORMAT((enum enum_binlog_format) variables.binlog_format),
binlog_filter->db_ok(db)));
#endif
diff --git a/sql/sql_class.h b/sql/sql_class.h
index 4ba2901d0cc..0860b868cd2 100644
--- a/sql/sql_class.h
+++ b/sql/sql_class.h
@@ -3286,8 +3286,8 @@ public:
tests fail and so force them to propagate the
lex->binlog_row_based_if_mixed upwards to the caller.
*/
- if ((WSREP_FORMAT(variables.binlog_format) == BINLOG_FORMAT_MIXED) &&
- (in_sub_stmt == 0))
+ if ((WSREP_FORMAT((enum enum_binlog_format) variables.binlog_format) ==
+ BINLOG_FORMAT_MIXED) && (in_sub_stmt == 0))
set_current_stmt_binlog_format_row();
DBUG_VOID_RETURN;
@@ -3338,7 +3338,8 @@ public:
show_system_thread(system_thread)));
if (in_sub_stmt == 0)
{
- if (WSREP_FORMAT(variables.binlog_format) == BINLOG_FORMAT_ROW)
+ if (WSREP_FORMAT((enum enum_binlog_format) variables.binlog_format) ==
+ BINLOG_FORMAT_ROW)
set_current_stmt_binlog_format_row();
else if (temporary_tables == NULL)
set_current_stmt_binlog_format_stmt();
@@ -3726,8 +3727,8 @@ public:
mysql_mutex_t LOCK_wakeup_ready;
mysql_cond_t COND_wakeup_ready;
/*
- The GTID assigned to the last commit. If no GTID was assigned to any commit
- so far, this is indicated by last_commit_gtid.seq_no == 0.
+ The GTID assigned to the last commit. If no GTID was assigned to any commit
+ so far, this is indicated by last_commit_gtid.seq_no == 0.
*/
rpl_gtid last_commit_gtid;
@@ -3762,25 +3763,25 @@ public:
mysql_cond_t COND_wsrep_thd;
wsrep_trx_meta_t wsrep_trx_meta;
uint32 wsrep_rand;
- Relay_log_info* wsrep_rli;
- rpl_group_info* wsrep_rgi;
+ 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;
+ 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;
int wsrep_mysql_replicated;
- const char* wsrep_TOI_pre_query; /* a query to apply before
- the actual TOI query */
+ 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;
+ void *wsrep_apply_format;
char wsrep_info[128]; /* string for dynamic proc info */
#endif /* WITH_WSREP */
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index e8e02197a1b..0788c233508 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -2781,10 +2781,9 @@ mysql_execute_command(THD *thd)
else
res= check_access(thd, privileges_requested, any_db, NULL, NULL, 0, 0);
- if (res)
- break;
+ if (!res)
+ res= execute_sqlcom_select(thd, all_tables);
- res= execute_sqlcom_select(thd, all_tables);
break;
}
case SQLCOM_PREPARE:
@@ -3135,7 +3134,7 @@ mysql_execute_command(THD *thd)
*/
if (thd->query_name_consts &&
mysql_bin_log.is_open() &&
- WSREP_FORMAT(thd->variables.binlog_format) == BINLOG_FORMAT_STMT &&
+ WSREP_FORMAT((enum enum_binlog_format) thd->variables.binlog_format) == BINLOG_FORMAT_STMT &&
!mysql_bin_log.is_query_in_union(thd, thd->query_id))
{
List_iterator_fast<Item> it(select_lex->item_list);
diff --git a/sql/wsrep_thd.cc b/sql/wsrep_thd.cc
index b9ff0ecf8a8..b65eead817d 100644
--- a/sql/wsrep_thd.cc
+++ b/sql/wsrep_thd.cc
@@ -90,7 +90,7 @@ void wsrep_client_rollback(THD *thd)
#define NUMBER_OF_FIELDS_TO_IDENTIFY_WORKER 2
//#include "rpl_info_factory.h"
-#if 0
+#ifdef NOT_USED
static Relay_log_info* wsrep_relay_log_init(const char* log_fname)
{