1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

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().
This commit is contained in:
Aleksey Midenkov
2022-09-27 13:44:30 +03:00
parent c579d66ba6
commit aa08a7442a
3 changed files with 13 additions and 0 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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