mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
ff4fde18c4
warnings) Before this fix, several places in the code would raise a warning with an error code 0, making it impossible for a stored procedure, a connector, or a client application to trigger logic to handle the warning. Also, the warning text was hard coded, and therefore not translated. With this fix, new errors numbers have been created to represent these warnings, and the warning text is coded in the errmsg.txt file.
95 lines
3.5 KiB
Text
95 lines
3.5 KiB
Text
create table t1 (a int) engine myisam
|
|
partition by range (a)
|
|
subpartition by hash (a)
|
|
(partition p0 VALUES LESS THAN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp'
|
|
(SUBPARTITION subpart00, SUBPARTITION subpart01));
|
|
# Checking if file exists before alter
|
|
ALTER TABLE t1 REORGANIZE PARTITION p0 INTO
|
|
(partition p1 VALUES LESS THAN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp'
|
|
(SUBPARTITION subpart10, SUBPARTITION subpart11),
|
|
partition p2 VALUES LESS THAN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp'
|
|
(SUBPARTITION subpart20, SUBPARTITION subpart21));
|
|
# Checking if file exists after alter
|
|
drop table t1;
|
|
set @org_mode=@@sql_mode;
|
|
set @@sql_mode='NO_DIR_IN_CREATE';
|
|
select @@sql_mode;
|
|
@@sql_mode
|
|
NO_DIR_IN_CREATE
|
|
create table t1 (i int )
|
|
partition by range (i)
|
|
(
|
|
partition p01 values less than (1000)
|
|
data directory='/not/existing'
|
|
index directory='/not/existing'
|
|
);
|
|
Warnings:
|
|
Warning 1616 <DATA DIRECTORY> option ignored
|
|
Warning 1616 <INDEX DIRECTORY> option ignored
|
|
show create table t2;
|
|
Table Create Table
|
|
t2 CREATE TABLE `t2` (
|
|
`i` int(11) DEFAULT NULL
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (i) (PARTITION p01 VALUES LESS THAN (1000) ENGINE = MyISAM) */
|
|
DROP TABLE t1, t2;
|
|
set @@sql_mode=@org_mode;
|
|
CREATE TABLE t1(a INT)
|
|
PARTITION BY KEY (a)
|
|
(PARTITION p0 DATA DIRECTORY 'TEST_DIR/master-data/test');
|
|
ERROR HY000: Incorrect arguments to DATA DIRECTORY
|
|
CREATE TABLE t1(a INT)
|
|
PARTITION BY KEY (a)
|
|
(PARTITION p0 INDEX DIRECTORY 'TEST_DIR/master-data/test');
|
|
ERROR HY000: Incorrect arguments to INDEX DIRECTORY
|
|
CREATE TABLE ts (id INT, purchased DATE)
|
|
PARTITION BY RANGE(YEAR(purchased))
|
|
SUBPARTITION BY HASH(TO_DAYS(purchased)) (
|
|
PARTITION p0 VALUES LESS THAN (1990) (
|
|
SUBPARTITION s0a
|
|
DATA DIRECTORY = 'TEST_DIR/master-data/test',
|
|
SUBPARTITION s0b
|
|
DATA DIRECTORY = 'TEST_DIR/master-data/test'
|
|
));
|
|
ERROR HY000: Incorrect arguments to DATA DIRECTORY
|
|
CREATE TABLE ts (id INT, purchased DATE)
|
|
PARTITION BY RANGE(YEAR(purchased))
|
|
SUBPARTITION BY HASH(TO_DAYS(purchased)) (
|
|
PARTITION p0 VALUES LESS THAN (1990) (
|
|
SUBPARTITION s0a
|
|
INDEX DIRECTORY = 'TEST_DIR/master-data/test',
|
|
SUBPARTITION s0b
|
|
INDEX DIRECTORY = 'TEST_DIR/master-data/test'
|
|
));
|
|
ERROR HY000: Incorrect arguments to INDEX DIRECTORY
|
|
DROP TABLE IF EXISTS `example`;
|
|
CREATE TABLE `example` (
|
|
`ID_EXAMPLE` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
`DESCRIPTION` varchar(30) NOT NULL,
|
|
`LEVEL` smallint(5) unsigned DEFAULT NULL,
|
|
PRIMARY KEY (`ID_EXAMPLE`)
|
|
) ENGINE = MYISAM
|
|
PARTITION BY HASH(ID_EXAMPLE)(
|
|
PARTITION p0 DATA DIRECTORY = 'MYSQLTEST_VARDIR/p0Data'
|
|
INDEX DIRECTORY = 'MYSQLTEST_VARDIR/p0Index',
|
|
PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/p1Data'
|
|
INDEX DIRECTORY = 'MYSQLTEST_VARDIR/p1Index',
|
|
PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/p2Data'
|
|
INDEX DIRECTORY = 'MYSQLTEST_VARDIR/p2Index',
|
|
PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/p3Data'
|
|
INDEX DIRECTORY = 'MYSQLTEST_VARDIR/p3Index'
|
|
);
|
|
# Checking that MyISAM .MYD and .MYI are in test db and data/idx dir
|
|
DROP TABLE example;
|
|
CREATE TABLE `example` (
|
|
`ID_EXAMPLE` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
|
`DESCRIPTION` varchar(30) NOT NULL,
|
|
`LEVEL` smallint(5) unsigned DEFAULT NULL,
|
|
PRIMARY KEY (`ID_EXAMPLE`)
|
|
) ENGINE = MYISAM
|
|
PARTITION BY HASH(ID_EXAMPLE)(
|
|
PARTITION p0 DATA DIRECTORY = '/not/existent/p0Data',
|
|
PARTITION p1 DATA DIRECTORY = '/not/existent/p1Data',
|
|
PARTITION p2 DATA DIRECTORY = '/not/existent/p2Data',
|
|
PARTITION p3 DATA DIRECTORY = '/not/existent/p3Data'
|
|
);
|
|
Got one of the listed errors
|