diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 38d53b6c5c6d8dd886d707af33886c0ae1310846..c82ae8f0f5cdc28f44ca6870d88ad0e9f9e95563 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -2805,11 +2805,14 @@ mysql_execute_command(THD *thd) case SQLCOM_SHOW_COLLATIONS: case SQLCOM_SHOW_STORAGE_ENGINES: case SQLCOM_SHOW_PROFILE: - WSREP_SYNC_WAIT(thd, WSREP_SYNC_WAIT_BEFORE_SHOW); case SQLCOM_SELECT: { - if (lex->sql_command == SQLCOM_SELECT) - WSREP_SYNC_WAIT(thd, WSREP_SYNC_WAIT_BEFORE_READ); +#ifdef WITH_WSREP + if (lex->sql_command == SQLCOM_SELECT) + WSREP_SYNC_WAIT(thd, WSREP_SYNC_WAIT_BEFORE_READ) + else + WSREP_SYNC_WAIT(thd, WSREP_SYNC_WAIT_BEFORE_SHOW) +#endif /* WITH_WSREP */ thd->status_var.last_query_cost= 0.0; @@ -2933,6 +2936,7 @@ case SQLCOM_PREPARE: case SQLCOM_SHOW_RELAYLOG_EVENTS: /* fall through */ case SQLCOM_SHOW_BINLOG_EVENTS: { + WSREP_SYNC_WAIT(thd, WSREP_SYNC_WAIT_BEFORE_SHOW); if (check_global_access(thd, REPL_SLAVE_ACL)) goto error; res = mysql_show_binlog_events(thd); @@ -3495,6 +3499,7 @@ case SQLCOM_PREPARE: { if (check_global_access(thd, SUPER_ACL | REPL_CLIENT_ACL)) goto error; + WSREP_SYNC_WAIT(thd, WSREP_SYNC_WAIT_BEFORE_SHOW); res = show_binlogs(thd); break; } @@ -4778,6 +4783,7 @@ case SQLCOM_PREPARE: if (!grant_user) goto error; + WSREP_SYNC_WAIT(thd, WSREP_SYNC_WAIT_BEFORE_SHOW); res = mysql_show_grants(thd, grant_user); break; } diff --git a/sql/sql_parse.h b/sql/sql_parse.h index e9c82b9df4806f5266aaa8dd0e4554094fc53783..c3844bcc83fd34cf0353115d99d5495213337337 100644 --- a/sql/sql_parse.h +++ b/sql/sql_parse.h @@ -226,8 +226,8 @@ inline bool is_supported_parser_charset(CHARSET_INFO *cs) && wsrep_to_isolation_begin(thd, db_, table_, table_list_)) goto error; #define WSREP_SYNC_WAIT(thd_, before_) \ - if (WSREP_CLIENT(thd_) && \ - wsrep_sync_wait(thd_, before_)) goto error; + { if (WSREP_CLIENT(thd_) && \ + wsrep_sync_wait(thd_, before_)) goto error; } #else