mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-36050 DATA/INDEX DIRECTORY handling is inconsistent
consistently issue a Note 1618 DATA DIRECTORY option ignored Note 1618 INDEX DIRECTORY option ignored in archive/csv/innodb/rocksdb whenever an option is ignored. Note that csv doesn't say "INDEX DIRECTORY option ignored" because it does not create index files at all anywhere. Other engines don't say "INDEX DIRECTORY option ignored" if the table has no indexes. additionally InnoDB doesn't say that if INDEX DIRECTORY is the same as DATA DIRECTORY, because in that case indexes are technically stored in INDEX DIRECTORY. collateral fix: use strmake to zero-terminate the string
This commit is contained in:
@@ -1,25 +1,30 @@
|
||||
SELECT @@have_symlink;
|
||||
@@have_symlink
|
||||
DISABLED
|
||||
CREATE TABLE t1(a INT) ENGINE=InnoDB DATA DIRECTORY 'MYSQL_TMP_DIR';
|
||||
CREATE TABLE t1(a INT, KEY(a)) ENGINE=InnoDB DATA DIRECTORY '$MYSQL_TMP_DIR' INDEX DIRECTORY '$MYSQL_TMP_DIR';
|
||||
Warnings:
|
||||
Warning 1618 DATA DIRECTORY option ignored
|
||||
Note 1618 INDEX DIRECTORY option ignored
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(a INT) ENGINE=InnoDB;
|
||||
ALTER TABLE t1 DATA DIRECTORY 'MYSQL_TMP_DIR';
|
||||
CREATE TABLE t1(a INT, KEY(a)) ENGINE=InnoDB;
|
||||
ALTER TABLE t1 DATA DIRECTORY '$MYSQL_TMP_DIR' INDEX DIRECTORY '$MYSQL_TMP_DIR';
|
||||
Warnings:
|
||||
Warning 1618 DATA DIRECTORY option ignored
|
||||
Warning 1618 INDEX DIRECTORY option ignored
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
`a` int(11) DEFAULT NULL,
|
||||
KEY `a` (`a`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
|
||||
DROP TABLE t1;
|
||||
# restart: --symbolic-links
|
||||
CREATE TABLE t1(a INT PRIMARY KEY, b INT) ENGINE=InnoDB
|
||||
DATA DIRECTORY 'MYSQL_TMP_DIR';
|
||||
DATA DIRECTORY '$MYSQL_TMP_DIR' INDEX DIRECTORY '$MYSQL_TMP_DIR/other';
|
||||
Warnings:
|
||||
Note 1618 INDEX DIRECTORY option ignored
|
||||
CREATE TABLE t2(a INT PRIMARY KEY, b INT) ENGINE=InnoDB
|
||||
DATA DIRECTORY 'MYSQL_TMP_DIR';
|
||||
DATA DIRECTORY '$MYSQL_TMP_DIR' INDEX DIRECTORY '$MYSQL_TMP_DIR';
|
||||
TRUNCATE TABLE t1;
|
||||
TRUNCATE TABLE t2;
|
||||
# restart
|
||||
|
Reference in New Issue
Block a user