Bug#1421360: Add 'FLUSH TABLES' to Total Order Isolation execution.
Before this, FLUSH TABLES and FLUSH TABLES t1 (REFRESH_TABLES hereafter) were executed locally, which also had implications for GTID. MySQL async replication does replicate FLUSH TABLES. Hence, this commit a) Adds REFRESH_TABLES to TOI. b) Skips LOCK-based REFRESH_TABLES from TOI, ie. FLUSH TABLES WITH READ LOCK and FLUSH TABLES FOR EXPORT. c) Executes them after reload_acl_and_cache. This is done since reload_acl_and_cache checks for thd->locked_tables_mode and does upgrade of MDL locks accordingly. A failure here means REFRESH_TABLES cannot run. i) This is also important since LOCK TABLES is not replicated in galera. d) Test galera_flush has been modified for i) wsrep_replicate_myisam SESSION variable. ii) Testing REFRESH_TABLES. iii) Testing REFRESH_TABLES + LOCK TABLES. e) Use different WSREP_TO_ISOLATION_BEGIN for global FLUSH TABLES and FLUSH TABLES <table,>.
Showing
Please register or sign in to comment