mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
396f4d62c6
- Fixed broadcast without a proper mutex - Don't break existing locks if we are just testing if we can get the lock mysql-test/r/create_delayed.result: Added test case for failures with INSERT DELAYED with CREATE and DROP TABLE mysql-test/t/create_delayed.test: Added test case for failures with INSERT DELAYED with CREATE and DROP TABLE sql/mdl.cc: Don't break existing locks for timeout=0 (ie, just check if there are conflicting locks). This fixed the bug that INSERT DELAYED didn't work properly with CREATE TABLE sql/sql_base.cc: One neads to hold the mutex before doing a mysql_cond_broadcast() This fixed the bug that INSERT DELAYED didn't work properly with DROP TABLE sql/sql_insert.cc: Protect setting of mysys_var->current_mutex.
34 lines
602 B
Text
34 lines
602 B
Text
#
|
|
# Ensure that INSERT DELAYED works with CREATE TABLE on existing table
|
|
#
|
|
|
|
-- source include/big_test.inc
|
|
|
|
--disable_warnings
|
|
drop table if exists t1;
|
|
--enable_warnings
|
|
|
|
--disable_query_log
|
|
--disable_result_log
|
|
|
|
--let $run=1000
|
|
|
|
--echo Starting test
|
|
|
|
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
|
|
}
|
|
|
|
--enable_query_log
|
|
--enable_result_log
|
|
|
|
--echo # All done
|