Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.5, 10.6, 10.3(EOL), 10.4(EOL), 10.7(EOL), 10.8(EOL)
-
None
Description
When we need to add/remove or change LIMIT, INTERVAL, AUTO we have to recreate partitioning from scratch. Such operations should be done fast. To remove options like LIMIT or INTERVAL one should write:
alter table t1 partition by system_time; |
The command checks whether it is new or existing SYSTEM_TIME partitioning. And in the case of new it behaves as CREATE would do: adds default number of partitions (2). If SYSTEM_TIME partitioning already existed it just changes its options: removes unspecified ones and adds/changes those specified explicitly. In case when partitions list was supplied it behaves as usual: does full repartitioning.
Examples:
create or replace table t1 (x int) with system versioning |
partition by system_time limit 100 partitions 4; |
# Change LIMIT
|
alter table t1 partition by system_time limit 33; |
# Remove LIMIT
|
alter table t1 partition by system_time; |
# This does full repartitioning |
alter table t1 partition by system_time limit 33 partitions 4; |
# This does data copy as pruning will require records in correct partitions |
alter table t1 partition by system_time interval 1 hour |
starts '2000-01-01 00:00:00'; |
# But this works fast, LIMIT will apply to DML commands |
alter table t1 partition by system_time limit 33; |
Attachments
Issue Links
- is blocked by
-
MDEV-19903 Setup default partitions for system versioning
- Closed
- is duplicated by
-
MDEV-25540 Auto-create: There is no clear way to disable auto-creation without ruining existing partitions
- Closed