mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Bug#42954: SQL MODE 'NO_DIR_IN_CREATE' does not work with subpartitions
There was no check for DATA/INDEX DIRECTORY for subpartitions Added the same check as for partitions.
This commit is contained in:
@ -1,4 +1,74 @@
|
||||
drop table if exists t1;
|
||||
#
|
||||
# Bug#42954: SQL MODE 'NO_DIR_IN_CREATE' does not work with
|
||||
# subpartitions
|
||||
SET @org_mode=@@sql_mode;
|
||||
SET @@sql_mode='NO_DIR_IN_CREATE';
|
||||
SELECT @@sql_mode;
|
||||
@@sql_mode
|
||||
NO_DIR_IN_CREATE
|
||||
CREATE TABLE t1 (id INT, purchased DATE)
|
||||
PARTITION BY RANGE(YEAR(purchased))
|
||||
SUBPARTITION BY HASH(TO_DAYS(purchased))
|
||||
(PARTITION p0 VALUES LESS THAN MAXVALUE
|
||||
DATA DIRECTORY = '/tmp/not-existing'
|
||||
INDEX DIRECTORY = '/tmp/not-existing');
|
||||
Warnings:
|
||||
Warning 1618 <DATA DIRECTORY> option ignored
|
||||
Warning 1618 <INDEX DIRECTORY> option ignored
|
||||
Warning 1618 <DATA DIRECTORY> option ignored
|
||||
Warning 1618 <INDEX DIRECTORY> option ignored
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` int(11) DEFAULT NULL,
|
||||
`purchased` date DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
/*!50100 PARTITION BY RANGE (YEAR(purchased))
|
||||
SUBPARTITION BY HASH (TO_DAYS(purchased))
|
||||
(PARTITION p0 VALUES LESS THAN MAXVALUE ENGINE = MyISAM) */
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (id INT, purchased DATE)
|
||||
PARTITION BY RANGE(YEAR(purchased))
|
||||
SUBPARTITION BY HASH(TO_DAYS(purchased)) SUBPARTITIONS 2
|
||||
(PARTITION p0 VALUES LESS THAN MAXVALUE
|
||||
(SUBPARTITION sp0
|
||||
DATA DIRECTORY = '/tmp/not-existing'
|
||||
INDEX DIRECTORY = '/tmp/not-existing',
|
||||
SUBPARTITION sp1));
|
||||
Warnings:
|
||||
Warning 1618 <DATA DIRECTORY> option ignored
|
||||
Warning 1618 <INDEX DIRECTORY> option ignored
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` int(11) DEFAULT NULL,
|
||||
`purchased` date DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
/*!50100 PARTITION BY RANGE (YEAR(purchased))
|
||||
SUBPARTITION BY HASH (TO_DAYS(purchased))
|
||||
(PARTITION p0 VALUES LESS THAN MAXVALUE
|
||||
(SUBPARTITION sp0 ENGINE = MyISAM,
|
||||
SUBPARTITION sp1 ENGINE = MyISAM)) */
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (id INT, purchased DATE)
|
||||
PARTITION BY RANGE(YEAR(purchased))
|
||||
(PARTITION p0 VALUES LESS THAN MAXVALUE
|
||||
DATA DIRECTORY = '/tmp/not-existing'
|
||||
INDEX DIRECTORY = '/tmp/not-existing');
|
||||
Warnings:
|
||||
Warning 1618 <DATA DIRECTORY> option ignored
|
||||
Warning 1618 <INDEX DIRECTORY> option ignored
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`id` int(11) DEFAULT NULL,
|
||||
`purchased` date DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
/*!50100 PARTITION BY RANGE (YEAR(purchased))
|
||||
(PARTITION p0 VALUES LESS THAN MAXVALUE ENGINE = MyISAM) */
|
||||
DROP TABLE t1;
|
||||
SET @@sql_mode= @org_mode;
|
||||
CREATE TABLE t1 (a INTEGER NOT NULL, PRIMARY KEY (a));
|
||||
INSERT INTO t1 VALUES (1),(1);
|
||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
|
Reference in New Issue
Block a user