1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +03:00

MDEV-29199 Unique hash key is ignored upon INSERT ... SELECT into non-empty MyISAM table

disable bulk insert optimization if long uniques are used, because they
need to read the table (index_read) after every inserted now. And bulk
insert optimization might disable indexes.

bulk insert is already disabled in other cases when there are chances
that the table will be read duing the bulk insert.
This commit is contained in:
Sergei Golubchik
2023-01-20 11:03:05 +01:00
parent db50919f97
commit fc292f42be
3 changed files with 211 additions and 97 deletions

View File

@ -3846,7 +3846,8 @@ select_insert::prepare(List<Item> &values, SELECT_LEX_UNIT *u)
lex->current_select->join->select_options|= OPTION_BUFFER_RESULT;
}
else if (!(lex->current_select->options & OPTION_BUFFER_RESULT) &&
thd->locked_tables_mode <= LTM_LOCK_TABLES)
thd->locked_tables_mode <= LTM_LOCK_TABLES &&
!table->s->long_unique_table)
{
/*
We must not yet prepare the result table if it is the same as one of the