Commit aa08a744 authored by Aleksey Midenkov's avatar Aleksey Midenkov

MDEV-29620 Assertion `next_insert_id == 0' failed in handler::ha_external_lock

ha_release_auto_increment() must be done before F_UNLCK.
Non-atomic case is handled by select_insert::binlog_query().
parent c579d66b
......@@ -912,3 +912,8 @@ x
77
drop table t;
set sql_mode= default;
#
# MDEV-29620 Assertion `next_insert_id == 0' failed in handler::ha_external_lock
#
create or replace table t1 (i serial) as select * from (values(1), (2)) dt;
drop table t1;
......@@ -697,3 +697,9 @@ alter table mysql.innodb_index_stats modify stat_description varchar(1024) not n
select * from t;
drop table t;
set sql_mode= default;
--echo #
--echo # MDEV-29620 Assertion `next_insert_id == 0' failed in handler::ha_external_lock
--echo #
create or replace table t1 (i serial) as select * from (values(1), (2)) dt;
drop table t1;
......@@ -4289,6 +4289,8 @@ bool select_insert::prepare_eof()
{
DBUG_ASSERT(table->s->tmp_table);
table->file->ha_release_auto_increment();
/*
Note: InnoDB does autocommit on external unlock.
We cannot do commit twice and we must commit after binlog
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment