mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Bug#52117 "Pending FLUSH TALBES <list> aborts transactions unnecessarily"
The bug was fixed by the patch for Bug 52044. Add a test case.
This commit is contained in:
@ -304,3 +304,72 @@ a
|
||||
1
|
||||
handler t1 close;
|
||||
drop table t1;
|
||||
#
|
||||
# Bug#52117 Pending FLUSH TALBES <list> aborts
|
||||
# transactions unnecessarily.
|
||||
#
|
||||
drop table if exists t1;
|
||||
# --> conection default
|
||||
create table t1 (a int);
|
||||
begin;
|
||||
select * from t1;
|
||||
a
|
||||
# --> connection con1
|
||||
#
|
||||
# Issue a LOCK TABLE t1 READ. We could use HANDLER t1 OPEN
|
||||
# or a long-running select -- anything that
|
||||
# prevents FLUSH TABLE t1 from immediate completion would do.
|
||||
#
|
||||
lock table t1 read;
|
||||
# --> connection con2
|
||||
#
|
||||
# FLUSH TABLE expels the table definition from the cache.
|
||||
# Sending 'flush table t1'...
|
||||
flush table t1;
|
||||
# --> connection default
|
||||
# Let flush table sync in.
|
||||
select * from t1;
|
||||
# --> connection con1
|
||||
select * from t1;
|
||||
a
|
||||
unlock tables;
|
||||
# --> connection con2
|
||||
# Reaping 'flush table t1'...
|
||||
# --> connection default
|
||||
# Reaping 'select * from t1'...
|
||||
a
|
||||
commit;
|
||||
#
|
||||
# Repeat the same test but with FLUSH TABLES
|
||||
#
|
||||
begin;
|
||||
select * from t1;
|
||||
a
|
||||
# --> connection con1
|
||||
#
|
||||
# Issue a LOCK TABLE t1 READ.
|
||||
#
|
||||
lock table t1 read;
|
||||
# --> connection con2
|
||||
#
|
||||
# FLUSH TABLES expels the table definition from the cache.
|
||||
# Sending 'flush tables'...
|
||||
flush tables;
|
||||
# --> connection default
|
||||
# Let flush table sync in.
|
||||
select * from t1;
|
||||
# --> connection con1
|
||||
select * from t1;
|
||||
a
|
||||
unlock tables;
|
||||
# --> connection con2
|
||||
# Reaping 'flush tables'...
|
||||
# --> connection default
|
||||
# Reaping 'select * from t1'...
|
||||
a
|
||||
commit;
|
||||
# Cleanup
|
||||
# --> connection con1
|
||||
# --> connection con2
|
||||
# --> connection default
|
||||
drop table t1;
|
||||
|
Reference in New Issue
Block a user