Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
5.5.29
-
None
-
None
Description
Here is an extract that helps to reproduce the problem quite easily:
drop table if exists t1; |
|
--disable_query_log
|
--disable_result_log
|
|
--let $run=1000
|
|
while ($run)
|
{
|
--echo # $run attempts left... |
CREATE TABLE t1 ( f1 INTEGER AUTO_INCREMENT, PRIMARY KEY (f1)) ENGINE=MyISAM; |
INSERT DELAYED t1 VALUES (4); |
--error ER_TABLE_EXISTS_ERROR |
CREATE TABLE t1 AS SELECT 1 AS f1; |
|
REPLACE DELAYED t1 VALUES (5); |
DROP TABLE t1; |
--dec $run |
}
|
|
--echo # All done
|
Normally it would go to the end and print "All done". With the bug, it stops in the middle with "Query execution was interrupted". Tried Linux and Windows, release and debug builds (particularly, BUILD/compile-pentium-debug-max-no-ndb).
It started happening after MDEV-3941, with this revision:
revno: 3593
|
revision-id: monty@askmonty.org-20121216141317-77vdudlfczp9sd84
|
parent: monty@askmonty.org-20121216100426-23v67jvuacc9rtk1
|
committer: Michael Widenius <monty@askmonty.org>
|
branch nick: maria-5.5
|
timestamp: Sun 2012-12-16 16:13:17 +0200
|
message:
|
Implemented MDEV-3941: CREATE TABLE xxx IF NOT EXISTS should not block if table exists.
|
- Added option to check_if_table_exists() to quickly check if table exists (either SHARE or .FRM)
|
- Extended lock_table_names() to not wait for meta data locks if CREATE IF NOT EXISTS is used.
|