Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-27328

Change of SYSTEM_TIME partitioning options is not possible without data copy

    XMLWordPrintable

Details

    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

          Activity

            People

              midenok Aleksey Midenkov
              midenok Aleksey Midenkov
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.