mirror of
https://github.com/MariaDB/server.git
synced 2026-10-23 18:49:29 +03:00
Allow auto partitioning by interval in PARTITION BY RANGE COLUMNS PARTITION BY RANGE COLUMNS (col_name) INTERVAL interval [AUTO] ( PARTITION partition_name VALUES LESS THAN (value) [, PARTITION partition_name VALUES LESS THAN (value) ... ] ) where - col_name is the name of one column of type DATE or DATETIME or TIMESTAMP - at least one partition is supplied, and the highest partition cannot have MAXVALUE range - INTERVAL interval is a positive time interval. it can be mariadb format or oracle NUMTODSINTERVAL/NUMTOYMINTERVAL format. Like versioning, the smallest unit is second, i.e. no subsecond like microsecond. - DATE column cannot have interval with values less than a day - Subpartitions are allowed, but restricted to existing subpartition types, i.e. [LINEAR] (KEY|HASH) When performing one of the following DML statements on such a table, it will first add partitions by the specified interval until the partition covers the current time: - INSERT - INSERT ... SELECT - LOAD - UPDATE - REPLACE - REPLACE ... SELECT Partition addition will not cause an implicit commit like DDL normally does. The partitions are named pN. Otherwise the table behaves exactly the same as a normal RANGE COLUMNS partitioned table. Note that TIMESTAMP is not allowed as a type for PARTITION BY RANGE COLUMNS otherwise. Including the following fixes: 1. MDEV-40088 Disallow subqueries in INTERVAL clause in range interval auto partitioning This is consistent with system time (versioning) partitioning. Also consistent is that both allow expressions otherwise. 2. MDEV-40048 Allow trigger and LOCK TABLES to work with range interval auto partitioning When a range interval auto partitioned table is the target of a trigger, the triggering statement is not necessarily one that would cause the auto-creation of new partitions, so we need to account for that. Also added support for LOCK TABLES ... WRITE. Improved tests coverage by adapting tests from versioning.partition. 3. MDEV-40467 Improve Y2038/2106 problem error message When nearing the end times TIMESTAMP_MAX_VALUE, auto-partition creation may encounter overflow when calculating new partition range. This patch improves the message of such an overflow
15 KiB
15 KiB