Skip to content

Commit 0fcb141

Browse files
committed
Fixed main.create-big failure
After MDEV-17772 table existence check is performed much earlier, so create_table_select_before_check_if_exists debug sync point is not reachable when table exists. Moved debug sync point to appropriate place.
1 parent 8049160 commit 0fcb141

File tree

4 files changed

+13
-14
lines changed

4 files changed

+13
-14
lines changed

mysql-test/main/create-big.result

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -237,23 +237,23 @@ select @a;
237237
@a
238238
0
239239
drop table t1;
240-
set debug_sync='create_table_select_before_check_if_exists SIGNAL parked WAIT_FOR go';
241-
create table if not exists t1 select 1 as i;;
240+
set debug_sync='create_table_before_check_if_exists SIGNAL parked WAIT_FOR go';
241+
create table if not exists t1 select 1 as i;
242242
connection addconroot1;
243243
set debug_sync='now WAIT_FOR parked';
244-
drop table t1;;
244+
drop table t1;
245245
connection addconroot2;
246246
set debug_sync='now SIGNAL go';
247247
connection default;
248248
connection addconroot1;
249249
connection default;
250250
create table t1 (i int);
251251
set @a:=0;
252-
set debug_sync='create_table_select_before_check_if_exists SIGNAL parked WAIT_FOR go';
253-
create table if not exists t1 select 1 as i;;
252+
set debug_sync='create_table_before_check_if_exists SIGNAL parked WAIT_FOR go';
253+
create table if not exists t1 select 1 as i;
254254
connection addconroot1;
255255
set debug_sync='now WAIT_FOR parked';
256-
create trigger t1_bi before insert on t1 for each row set @a:=1;;
256+
create trigger t1_bi before insert on t1 for each row set @a:=1;
257257
connection addconroot2;
258258
set debug_sync='now SIGNAL go';
259259
connection default;

mysql-test/main/create-big.test

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -395,11 +395,11 @@ select @a;
395395
drop table t1;
396396

397397
# Concurrent DROP TABLE
398-
set debug_sync='create_table_select_before_check_if_exists SIGNAL parked WAIT_FOR go';
399-
--send create table if not exists t1 select 1 as i;
398+
set debug_sync='create_table_before_check_if_exists SIGNAL parked WAIT_FOR go';
399+
--send create table if not exists t1 select 1 as i
400400
connection addconroot1;
401401
set debug_sync='now WAIT_FOR parked';
402-
--send drop table t1;
402+
--send drop table t1
403403
connection addconroot2;
404404
# Wait until the above DROP TABLE is blocked due to CREATE TABLE
405405
let $wait_condition=
@@ -417,11 +417,11 @@ connection default;
417417
# Concurrent CREATE TRIGGER
418418
create table t1 (i int);
419419
set @a:=0;
420-
set debug_sync='create_table_select_before_check_if_exists SIGNAL parked WAIT_FOR go';
421-
--send create table if not exists t1 select 1 as i;
420+
set debug_sync='create_table_before_check_if_exists SIGNAL parked WAIT_FOR go';
421+
--send create table if not exists t1 select 1 as i
422422
connection addconroot1;
423423
set debug_sync='now WAIT_FOR parked';
424-
--send create trigger t1_bi before insert on t1 for each row set @a:=1;
424+
--send create trigger t1_bi before insert on t1 for each row set @a:=1
425425
connection addconroot2;
426426
# Wait until the above DROP TABLE is blocked due to CREATE TABLE
427427
let $wait_condition=

sql/sql_base.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3893,6 +3893,7 @@ static bool upgrade_lock_if_not_exists(THD *thd,
38933893
if (thd->lex->sql_command == SQLCOM_CREATE_TABLE ||
38943894
thd->lex->sql_command == SQLCOM_CREATE_SEQUENCE)
38953895
{
3896+
DEBUG_SYNC(thd,"create_table_before_check_if_exists");
38963897
if (!create_info.or_replace() &&
38973898
ha_table_exists(thd, &create_table->db, &create_table->table_name))
38983899
{

sql/sql_insert.cc

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4420,8 +4420,6 @@ select_create::prepare(List<Item> &_values, SELECT_LEX_UNIT *u)
44204420
thd->binlog_start_trans_and_stmt();
44214421
}
44224422

4423-
DEBUG_SYNC(thd,"create_table_select_before_check_if_exists");
4424-
44254423
if (!(table= create_table_from_items(thd, &values, &extra_lock, hook_ptr)))
44264424
/* abort() deletes table */
44274425
DBUG_RETURN(-1);

0 commit comments

Comments
 (0)