Not all table partitioning has the ability to add a so called "catch all". The catch all is present in range partitioning:
partition last values less than(MAXVALUE)
The proposal is to add similar statements to list partitioning: Proposed syntax:
partition last values not in other
Benefits: No more insert exceptions, giving the DBA more choices in applying this partitioning with less effort.
DEFAULT looks ok.
There can not be DEFAULT partition for HASH and KEY partition types (If they can I can find why).
Oleksandr Byelkin
added a comment - - edited DEFAULT looks ok.
There can not be DEFAULT partition for HASH and KEY partition types (If they can I can find why).
VALUES LESS THAN (MAXVALUE) is effectively DEFAULT partition for RANGE partition so probably it has sens to make syntax sugar here.
Oleksandr Byelkin
added a comment - - edited VALUES LESS THAN (MAXVALUE) is effectively DEFAULT partition for RANGE partition so probably it has sens to make syntax sugar here.
"PARTITION partition_name VALUES IN (DEFAULT)" looks strange IMHO.
Oleksandr Byelkin
added a comment - Actual LIST partitioning syntax in MariaDB is
PARTITION BY LIST (partitioning_expression)
(
PARTITION partition_name VALUES IN (value_list),
[ PARTITION partition_name VALUES IN (value_list), ... ]
)
IMHO following syntax is what correspond to it:
PARTITION BY LIST (partitioning_expression)
(
PARTITION partition_name VALUES IN (value_list),
[ PARTITION partition_name VALUES IN (value_list), ... ]
[ PARTITION partition_name DEFAULT ]
)
"PARTITION partition_name VALUES IN (DEFAULT)" looks strange IMHO.
For beginning prune_partitions() should always mark default partition as used.
After discussing it with Sergei Petrunia we decided that with current approach it will be done automatically.
Oleksandr Byelkin
added a comment - - edited For beginning prune_partitions() should always mark default partition as used.
After discussing it with Sergei Petrunia we decided that with current approach it will be done automatically.
As far as several columns expression possible, we have to support
PARTITION p1 VALUES IN ((default, 2))
hopefully it will not conflict with default values of correspondent column in users understanding...
Oleksandr Byelkin
added a comment - As far as several columns expression possible, we have to support
PARTITION p1 VALUES IN ((default, 2))
hopefully it will not conflict with default values of correspondent column in users understanding...
Taking into account complications with deciding where to put record (2,3) when we have partitions (DEFAULT,3) and (2, DEFAULT) it will be better to have only one partition which catch all missed records. So syntax will be following:
Oleksandr Byelkin
added a comment - - edited Taking into account complications with deciding where to put record (2,3) when we have partitions (DEFAULT,3) and (2, DEFAULT) it will be better to have only one partition which catch all missed records. So syntax will be following:
PARTITION BY LIST (partitioning_expression)
(
PARTITION partition_name VALUES IN (value_list),
[ PARTITION partition_name VALUES IN (value_list), ... ]
[ PARTITION partition_name DEFAULT ]
)
PARTITION BY LIST COLUMNS(column_list)
(
PARTITION partition_name VALUES IN ((value_list),(value_list),...),
[ PARTITION partition_name VALUES IN ((value_list),(value_list), ...) ]
[ PARTITION partition_name DEFAULT ]
)
MDEV-8348: Add catchall to all table partitioning for list partitions
DEFAULT partition support added to LIST and LIST COLUMN partitioning.
Partitions Prunning added for DEFAULT partititon.
—
Oleksandr Byelkin
added a comment - revision-id: 442a3d4766f9115bfd496dd4fafd38f7aeb0e273 (mariadb-10.2.1-52-g442a3d4)
parent(s): 1eb58ff3b8569d7dad1f5c180a5e55683e53d205
committer: Oleksandr Byelkin
timestamp: 2016-09-02 15:09:12 +0200
message:
MDEV-8348 : Add catchall to all table partitioning for list partitions
DEFAULT partition support added to LIST and LIST COLUMN partitioning.
Partitions Prunning added for DEFAULT partititon.
—
MDEV-8348: Add catchall to all table partitioning for list partitions
DEFAULT partition support added to LIST and LIST COLUMN partitioning.
Partitions Prunning added for DEFAULT partititon.
—
Oleksandr Byelkin
added a comment - revision-id: 06310902e5754fc2ead73d903267bb9fa85b85b2 (mariadb-10.2.1-52-g0631090)
parent(s): 1eb58ff3b8569d7dad1f5c180a5e55683e53d205
committer: Oleksandr Byelkin
timestamp: 2016-09-06 22:52:39 +0200
message:
MDEV-8348 : Add catchall to all table partitioning for list partitions
DEFAULT partition support added to LIST and LIST COLUMN partitioning.
Partitions Prunning added for DEFAULT partititon.
—
DEFAULT looks ok.
There can not be DEFAULT partition for HASH and KEY partition types (If they can I can find why).