MDEV-30528 CREATE FULLTEXT INDEX assertion failure WITH SYSTEM VERSIONING

ha_innobase::check_if_supported_inplace_alter(): Require ALGORITHM=COPY
when creating a FULLTEXT INDEX on a versioned table.

row_merge_buf_add(), row_merge_read_clustered_index(): Remove the parameter
or local variable history_fts that had been added in the attempt to fix
MDEV-25004.

Reviewed by: Thirunarayanan Balathandayuthapani
Tested by: Matthias Leich
This commit is contained in:
Marko Mäkelä 2024-02-01 14:51:26 +02:00 committed by Oleksandr Byelkin
commit ca88eac835
17 changed files with 366 additions and 24 deletions

View file

@ -2596,6 +2596,9 @@ cannot_create_many_fulltext_index:
online = false;
}
static constexpr const char *not_implemented
= "Not implemented for system-versioned operations";
if (ha_alter_info->handler_flags
& ALTER_ADD_NON_UNIQUE_NON_PRIM_INDEX) {
/* ADD FULLTEXT|SPATIAL INDEX requires a lock.
@ -2623,6 +2626,12 @@ cannot_create_many_fulltext_index:
goto cannot_create_many_fulltext_index;
}
if (altered_table->versioned()) {
ha_alter_info->unsupported_reason
= not_implemented;
DBUG_RETURN(HA_ALTER_INPLACE_NOT_SUPPORTED);
}
add_fulltext = true;
if (ha_alter_info->online
&& !ha_alter_info->unsupported_reason) {
@ -2661,10 +2670,8 @@ cannot_create_many_fulltext_index:
// FIXME: implement Online DDL for system-versioned operations
if (ha_alter_info->handler_flags & INNOBASE_ALTER_VERSIONED_REBUILD) {
if (ha_alter_info->online) {
ha_alter_info->unsupported_reason =
"Not implemented for system-versioned operations";
ha_alter_info->unsupported_reason = not_implemented;
}
online = false;