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

MDEV-30442: Assertion `!m_innodb' failed in ha_partition::cmp_ref ...

The failed assertion was about encountering the same rowid value in
two different partitions.
This wasn't possible with InnoDB previously: InnoDB used a global counter
to produce rowid values for hidden PK.

After the fix for MDEV-19506, it uses per-table counters so it's easily
possible to get the same hidden PK values in different tables.
This commit is contained in:
Sergei Petrunia
2023-02-24 12:22:40 +03:00
parent ef5bb0814a
commit 090e5d8b94
3 changed files with 54 additions and 7 deletions

View File

@ -0,0 +1,30 @@
--source include/not_embedded.inc
--source include/have_partition.inc
--source include/have_innodb.inc
--source include/have_sequence.inc
--echo #
--echo # MDEV-30442: Assertion `!m_innodb' failed in ha_partition::cmp_ref on MULTI-DELETE
--echo #
create table t1 (a int) engine=innodb;
insert into t1 values (1),(2),(1),(2);
create table t2 (
a int,
b int,
key(a)
) engine=innodb partition by list(a)
(
partition p0 values in (1),
partition p1 values in (2),
partition p2 values in (0,3,4,5,6,7,8,9)
);
insert into t2 select
mod(seq, 10), seq from seq_1_to_50;
explain
delete t1, t2 from t1, t2 where t1.a=t2.a;
delete t1, t2 from t1, t2 where t1.a=t2.a;
drop table t1,t2;