Revert "MDEV-28727 ALTER TABLE ALGORITHM=NOCOPY does not work after upgrade"
This reverts commit 1ea5e402a89a1e3fb9ba8045e58570d23837714a
This commit is contained in:
parent
291872ec82
commit
1be451ca79
@ -947,42 +947,4 @@ disconnect con1;
|
|||||||
connection default;
|
connection default;
|
||||||
drop table mysql.global_priv;
|
drop table mysql.global_priv;
|
||||||
rename table mysql.global_priv_bak to mysql.global_priv;
|
rename table mysql.global_priv_bak to mysql.global_priv;
|
||||||
#
|
|
||||||
# MDEV-28727 ALTER TABLE ALGORITHM=NOCOPY does not work after upgrade
|
|
||||||
#
|
|
||||||
create or replace table pet4 (
|
|
||||||
build_time double(18, 7) default null,
|
|
||||||
key idx1 (build_time)
|
|
||||||
) engine innodb;
|
|
||||||
check table pet4;
|
|
||||||
Table Op Msg_type Msg_text
|
|
||||||
test.pet4 check error Table rebuild required. Please do "ALTER TABLE `pet4` FORCE" or dump/reload to fix it!
|
|
||||||
check table pet4 for upgrade;
|
|
||||||
Table Op Msg_type Msg_text
|
|
||||||
test.pet4 check error Table rebuild required. Please do "ALTER TABLE `pet4` FORCE" or dump/reload to fix it!
|
|
||||||
alter table pet4 add i1 int, algorithm=nocopy;
|
|
||||||
ERROR 0A000: ALGORITHM=NOCOPY is not supported for this operation. Try ALGORITHM=INPLACE
|
|
||||||
# Running mysqlcheck
|
|
||||||
test.pet4
|
|
||||||
error : Table rebuild required. Please do "ALTER TABLE `pet4` FORCE" or dump/reload to fix it!
|
|
||||||
|
|
||||||
Repairing tables
|
|
||||||
check table pet4;
|
|
||||||
Table Op Msg_type Msg_text
|
|
||||||
test.pet4 check status OK
|
|
||||||
alter table pet4 add i1 int, algorithm=nocopy;
|
|
||||||
create or replace table pet4 (
|
|
||||||
build_time double(18, 7) default null,
|
|
||||||
key idx1 (build_time)
|
|
||||||
) engine innodb;
|
|
||||||
alter table pet4 add i1 int, algorithm=nocopy;
|
|
||||||
ERROR 0A000: ALGORITHM=NOCOPY is not supported for this operation. Try ALGORITHM=INPLACE
|
|
||||||
# Running mysql_upgrade
|
|
||||||
test.pet4
|
|
||||||
error : Table rebuild required. Please do "ALTER TABLE `pet4` FORCE" or dump/reload to fix it!
|
|
||||||
check table pet4;
|
|
||||||
Table Op Msg_type Msg_text
|
|
||||||
test.pet4 check status OK
|
|
||||||
alter table pet4 add i1 int, algorithm=nocopy;
|
|
||||||
drop table pet4;
|
|
||||||
# End of 10.4 tests
|
# End of 10.4 tests
|
||||||
|
@ -472,45 +472,4 @@ drop table mysql.global_priv;
|
|||||||
rename table mysql.global_priv_bak to mysql.global_priv;
|
rename table mysql.global_priv_bak to mysql.global_priv;
|
||||||
--remove_file $MYSQLD_DATADIR/mysql_upgrade_info
|
--remove_file $MYSQLD_DATADIR/mysql_upgrade_info
|
||||||
|
|
||||||
--echo #
|
|
||||||
--echo # MDEV-28727 ALTER TABLE ALGORITHM=NOCOPY does not work after upgrade
|
|
||||||
--echo #
|
|
||||||
create or replace table pet4 (
|
|
||||||
build_time double(18, 7) default null,
|
|
||||||
key idx1 (build_time)
|
|
||||||
) engine innodb;
|
|
||||||
|
|
||||||
--remove_file $MYSQLD_DATADIR/test/pet4.frm
|
|
||||||
--copy_file std_data/mdev-28727-pet4.frm $MYSQLD_DATADIR/test/pet4.frm
|
|
||||||
|
|
||||||
check table pet4;
|
|
||||||
check table pet4 for upgrade;
|
|
||||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
|
||||||
alter table pet4 add i1 int, algorithm=nocopy;
|
|
||||||
|
|
||||||
--echo # Running mysqlcheck
|
|
||||||
--exec $MYSQL_CHECK --auto-repair --databases test 2>&1
|
|
||||||
check table pet4;
|
|
||||||
alter table pet4 add i1 int, algorithm=nocopy;
|
|
||||||
|
|
||||||
create or replace table pet4 (
|
|
||||||
build_time double(18, 7) default null,
|
|
||||||
key idx1 (build_time)
|
|
||||||
) engine innodb;
|
|
||||||
|
|
||||||
--remove_file $MYSQLD_DATADIR/test/pet4.frm
|
|
||||||
--copy_file std_data/mdev-28727-pet4.frm $MYSQLD_DATADIR/test/pet4.frm
|
|
||||||
|
|
||||||
--error ER_ALTER_OPERATION_NOT_SUPPORTED
|
|
||||||
alter table pet4 add i1 int, algorithm=nocopy;
|
|
||||||
|
|
||||||
--echo # Running mysql_upgrade
|
|
||||||
--exec $MYSQL_UPGRADE --silent 2>&1
|
|
||||||
file_exists $MYSQLD_DATADIR/mysql_upgrade_info;
|
|
||||||
check table pet4;
|
|
||||||
alter table pet4 add i1 int, algorithm=nocopy;
|
|
||||||
|
|
||||||
--remove_file $MYSQLD_DATADIR/mysql_upgrade_info
|
|
||||||
drop table pet4;
|
|
||||||
|
|
||||||
--echo # End of 10.4 tests
|
--echo # End of 10.4 tests
|
||||||
|
Binary file not shown.
@ -4370,32 +4370,17 @@ int handler::ha_check(THD *thd, HA_CHECK_OPT *check_opt)
|
|||||||
DBUG_ASSERT(table_share->tmp_table != NO_TMP_TABLE ||
|
DBUG_ASSERT(table_share->tmp_table != NO_TMP_TABLE ||
|
||||||
m_lock_type != F_UNLCK);
|
m_lock_type != F_UNLCK);
|
||||||
|
|
||||||
const ulong v= table->s->mysql_version;
|
if ((table->s->mysql_version >= MYSQL_VERSION_ID) &&
|
||||||
|
|
||||||
if ((v >= MYSQL_VERSION_ID) &&
|
|
||||||
(check_opt->sql_flags & TT_FOR_UPGRADE))
|
(check_opt->sql_flags & TT_FOR_UPGRADE))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (v < MYSQL_VERSION_ID)
|
if (table->s->mysql_version < MYSQL_VERSION_ID)
|
||||||
{
|
{
|
||||||
if (unlikely((error= check_old_types())))
|
if (unlikely((error= check_old_types())))
|
||||||
return error;
|
return error;
|
||||||
error= ha_check_for_upgrade(check_opt);
|
error= ha_check_for_upgrade(check_opt);
|
||||||
if (unlikely(error && (error != HA_ADMIN_NEEDS_CHECK)))
|
if (unlikely(error && (error != HA_ADMIN_NEEDS_CHECK)))
|
||||||
return error;
|
return error;
|
||||||
if (table->s->table_category == TABLE_CATEGORY_USER &&
|
|
||||||
(v < 100142 ||
|
|
||||||
(v >= 100200 && v < 100228) ||
|
|
||||||
(v >= 100300 && v < 100319) ||
|
|
||||||
(v >= 100400 && v < 100409)))
|
|
||||||
{
|
|
||||||
for (const KEY *key= table->key_info,
|
|
||||||
*end= table->key_info + table->s->keys; key < end; key++)
|
|
||||||
{
|
|
||||||
if (key->flags & HA_BINARY_PACK_KEY && key->flags & HA_VAR_LENGTH_KEY)
|
|
||||||
return HA_ADMIN_NEEDS_UPGRADE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (unlikely(!error && (check_opt->sql_flags & TT_FOR_UPGRADE)))
|
if (unlikely(!error && (check_opt->sql_flags & TT_FOR_UPGRADE)))
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user