diff options
Diffstat (limited to 'sql')
-rw-r--r-- | sql/events.cc | 7 | ||||
-rw-r--r-- | sql/log.cc | 10 | ||||
-rw-r--r-- | sql/sql_base.cc | 4 | ||||
-rw-r--r-- | sql/sql_class.cc | 33 | ||||
-rw-r--r-- | sql/sql_class.h | 23 | ||||
-rw-r--r-- | sql/sql_parse.cc | 7 | ||||
-rw-r--r-- | sql/wsrep_thd.cc | 2 |
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) { |