Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.3(EOL), 10.4(EOL)
-
None
Description
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
|
Attachments
Issue Links
- is duplicated by
-
MDEV-20345 Warning of full history partition is one command late
- Closed
- relates to
-
MDEV-28271 Assertion on TRUNCATE PARTITION for PARTITION BY SYSTEM_TIME
- Closed
-
MDEV-20068 History partition rotation is not done under LOCK TABLES
- Closed
-
MDEV-25476 Auto-create: DML exceeding LIMIT size does not cause a warning
- Closed
-
MDEV-28337 Update documentation for SYSTEM_TIME partitioning
- Stalled