[MDEV-5058] engine options cannot be set together with partitioning Created: 2013-09-23  Updated: 2015-02-18  Resolved: 2013-11-10

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: 10.0.4, 5.2.14, 5.3.12, 5.5.33a
Fix Version/s: 5.5.34, 10.0.6

Type: Bug Priority: Major
Reporter: Sergei Golubchik Assignee: Sergei Golubchik
Resolution: Won't Fix Votes: 0
Labels: None

Issue Links:
Relates
relates to MDEV-5271 Support engine-defined attributes per... Closed

 Description   

One cannot specify engine options when creating a partitioned table:

> CREATE TABLE bar (id int, key (id) CLUSTERING=YES) ENGINE=TokuDB COMPRESSION=TOKUDB_LZMA PARTITION BY HASH(id) PARTITIONS 4;
ERROR 1911 (HY000): Unknown option 'CLUSTERING

but adding partitioning later works fine

> CREATE TABLE bar (id int, key (id) CLUSTERING=YES) ENGINE=TokuDB COMPRESSION=TOKUDB_LZMA;
Query OK, 0 rows affected (0.02 sec)
 
> ALTER TABLE bar PARTITION BY HASH(id) PARTITIONS 4;
Query OK, 0 rows affected (0.08 sec)
Records: 0  Duplicates: 0  Warnings: 0



 Comments   
Comment by Sergei Golubchik [ 2013-11-10 ]

This is consistent with how other table attributes work. For example INDEX/DATA DIRECTORY. Compare

1)

create table t2 (i int ) partition by range (i) ( partition p01 values less than (1000) data directory = '/tmp' index directory = '/tmp' );

2)

create table t2 (i int ) data directory = '/tmp' index directory = '/tmp' partition by range (i) ( partition p01 values less than (1000));

In the second example the table is not created in /tmp, index/data clauses are ignored. Because they don't apply to a PARTITION engine, and, being, hard-coded, don't fail for unsupported engines.

TokuDB specific clauses properly fail for a unsupported engine (like PARTITION). When partitioning is enabled, they should be specified per partition, not for the whole table. This is MDEV-5271

Generated at Thu Feb 08 07:01:20 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.