diff options
author | Nikita Malyavin <nikitamalyavin@gmail.com> | 2020-04-02 22:37:36 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-02 22:37:36 +1000 |
commit | 9149017bb838e9efbef40c5f2807894c38b3412f (patch) | |
tree | 2a0ac6313b38ed105981fbd3fb5969999ce5e219 /mysql-test/main/partition_alter.result | |
parent | b40b3720cbba133ee76ef336bf89bbf5c03ac403 (diff) | |
download | mariadb-git-9149017bb838e9efbef40c5f2807894c38b3412f.tar.gz |
MDEV-17091 - Assertion failed after dropping versioning
Assertion `old_part_id == m_last_part' failed in ha_partition::update_row or `part_id == m_last_part' in ha_partition::delete_row upon UPDATE/DELETE after dropping versioning
PRIMARY KEY change hadn't been treated as partition reorganization in case of partitioning by KEY() (without parameters).
* set `*partition_changed= true` in the described case.
* since add/drop system versioning does not affect alter_info->key_list, it required separate attention
Diffstat (limited to 'mysql-test/main/partition_alter.result')
-rw-r--r-- | mysql-test/main/partition_alter.result | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/mysql-test/main/partition_alter.result b/mysql-test/main/partition_alter.result index ca6359f94de..d946f2b8822 100644 --- a/mysql-test/main/partition_alter.result +++ b/mysql-test/main/partition_alter.result @@ -129,3 +129,26 @@ ERROR HY000: Duplicate partition name p1 alter table t1 add partition (partition p1); ERROR HY000: Duplicate partition name p1 drop table t1; +# +# MDEV-17091 Assertion `old_part_id == m_last_part' failed in +# ha_partition::update_row or `part_id == m_last_part' in +# ha_partition::delete_row upon UPDATE/DELETE after dropping versioning +# +create or replace table t1 (pk int, f int, primary key(pk, f)) engine=innodb +partition by key() partitions 2; +insert into t1 values (1,10),(2,11); +# expected to hit same partition +select * from t1 partition (p0); +pk f +1 10 +2 11 +alter table t1 drop primary key, drop f, add primary key(pk); +# 1 and 2 are expected to be in different partitions +select * from t1 partition(p0); +pk +1 +select * from t1 partition(p1); +pk +2 +delete from t1; +drop table t1; |