mirror of
https://github.com/MariaDB/server.git
synced 2025-06-13 13:01:51 +03:00
Refs: MW-245 - changed logic so that in non primary node it is possible to do SET + SHOW + SELECT from information and pfs schema, when dirty reads are not enabled - however, non table selects are not allowed (e.g. SELECT 1)
This commit is contained in:
@ -893,6 +893,7 @@ void cleanup_items(Item *item)
|
||||
#ifdef WITH_WSREP
|
||||
static bool wsrep_tables_accessible_when_detached(const TABLE_LIST *tables)
|
||||
{
|
||||
bool has_tables = false;
|
||||
for (const TABLE_LIST *table= tables; table; table= table->next_global)
|
||||
{
|
||||
TABLE_CATEGORY c;
|
||||
@ -905,8 +906,9 @@ static bool wsrep_tables_accessible_when_detached(const TABLE_LIST *tables)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
has_tables = true;
|
||||
}
|
||||
return true;
|
||||
return has_tables;
|
||||
}
|
||||
#endif /* WITH_WSREP */
|
||||
#ifndef EMBEDDED_LIBRARY
|
||||
@ -2686,8 +2688,7 @@ mysql_execute_command(THD *thd)
|
||||
!(wsrep_ready && wsrep_reject_queries == WSREP_REJECT_NONE) &&
|
||||
!(thd->variables.wsrep_dirty_reads &&
|
||||
(sql_command_flags[lex->sql_command] & CF_CHANGES_DATA) == 0) &&
|
||||
!(thd->variables.wsrep_dirty_reads &&
|
||||
wsrep_tables_accessible_when_detached(all_tables)) &&
|
||||
!wsrep_tables_accessible_when_detached(all_tables) &&
|
||||
lex->sql_command != SQLCOM_SET_OPTION &&
|
||||
!wsrep_is_show_query(lex->sql_command))
|
||||
{
|
||||
|
Reference in New Issue
Block a user