Reproduce
create or replace table t1 (x int) with system versioning partition by system_time limit 1;
|
insert into t1 values (0), (1), (2), (3);
|
delete from t1;
|
Result
No warning printed.
Expected
+---------+------+----------------------------------------------------------------------------------------------------------+
|
| Level | Code | Message |
|
+---------+------+----------------------------------------------------------------------------------------------------------+
|
| Warning | 4114 | Versioned table `test`.`t1`: last HISTORY partition (`p0`) is out of LIMIT, need more HISTORY partitions |
|
+---------+------+----------------------------------------------------------------------------------------------------------+
|
Variation
This variation displays warning on second DELETE:
create or replace table t1 (x int) with system versioning partition by system_time limit 1;
|
insert into t1 values (0), (1), (2), (3);
|
delete from t1 where x < 3;
|
delete from t1;
|
Additional problem: LIMIT allows on more extra record unexpectedly
Reproduce
-- source include/have_partition.inc
|
-- source include/have_sequence.inc
|
|
create table t1 (x int) engine=myisam with system versioning
|
partition by system_time limit 100 (
|
partition p0 history,
|
partition p1 history,
|
partition pn current);
|
|
insert into t1 select seq from seq_0_to_200;
|
|
delete from t1 where x <= 99;
|
show warnings;
|
delete from t1 where x <= 100;
|
show warnings;
|
delete from t1;
|
show warnings;
|
select count(*) from t1 partition (p0);
|
select count(*) from t1 partition (p1);
|
drop table t1;
|
Result
Partition p0 is filled with 101 records. No warning printed.
delete from t1 where x <= 99;
|
show warnings;
|
Level Code Message
|
delete from t1 where x <= 100;
|
show warnings;
|
Level Code Message
|
delete from t1;
|
show warnings;
|
Level Code Message
|
select count(*) from t1 partition (p0);
|
count(*)
|
101
|
select count(*) from t1 partition (p1);
|
count(*)
|
100
|
Expected
Partition p0 is filled is filled with 100 records. Warning is printed when p1 is filled with 101 records.
delete from t1 where x <= 99;
|
show warnings;
|
Level Code Message
|
delete from t1 where x <= 100;
|
show warnings;
|
Level Code Message
|
delete from t1;
|
show warnings;
|
Level Code Message
|
Warning 4114 Versioned table `test`.`t1`: partition `p1` is full, add more HISTORY partitions
|
select count(*) from t1 partition (p0);
|
count(*)
|
100
|
select count(*) from t1 partition (p1);
|
count(*)
|
101
|
|