1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

MDEV-27683 EXCHANGE PARTITION allows different index direction, but causes further errors

This commit is contained in:
Sergei Golubchik
2022-02-03 12:44:09 +01:00
parent a450d58ad0
commit c0f5fd2754
3 changed files with 26 additions and 1 deletions

View File

@ -1239,3 +1239,14 @@ DROP TABLE t1, t2;
#
# End of 10.3 tests
#
#
# MDEV-27683 EXCHANGE PARTITION allows different index direction, but causes further errors
#
CREATE TABLE t1 (a INT, KEY(a DESC)) PARTITION BY KEY(a) PARTITIONS 4;
CREATE TABLE t2 (a INT, KEY(a));
ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2;
ERROR HY000: Tables have different definitions
DROP TABLE t1, t2;
#
# End of 10.8 tests
#

View File

@ -535,3 +535,16 @@ DROP TABLE t1, t2;
--echo #
--echo # End of 10.3 tests
--echo #
--echo #
--echo # MDEV-27683 EXCHANGE PARTITION allows different index direction, but causes further errors
--echo #
CREATE TABLE t1 (a INT, KEY(a DESC)) PARTITION BY KEY(a) PARTITIONS 4;
CREATE TABLE t2 (a INT, KEY(a));
--error ER_TABLES_DIFFERENT_METADATA
ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2;
DROP TABLE t1, t2;
--echo #
--echo # End of 10.8 tests
--echo #

View File

@ -7147,7 +7147,8 @@ bool mysql_compare_tables(TABLE *table, Alter_info *alter_info,
are equal. Comparing field numbers is sufficient.
*/
if ((table_part->length != new_part->length) ||
(table_part->fieldnr - 1 != new_part->fieldnr))
(table_part->fieldnr - 1 != new_part->fieldnr) ||
((table_part->key_part_flag ^ new_part->key_part_flag) & HA_REVERSE_SORT))
DBUG_RETURN(false);
}
}