mirror of
https://github.com/MariaDB/server.git
synced 2025-06-11 23:34:44 +02:00

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
47 lines
1.4 KiB
Text
47 lines
1.4 KiB
Text
--source include/have_innodb.inc
|
|
--source include/not_windows.inc
|
|
|
|
SELECT @@have_symlink;
|
|
evalp CREATE TABLE t1(a INT, KEY(a)) ENGINE=InnoDB DATA DIRECTORY '$MYSQL_TMP_DIR' INDEX DIRECTORY '$MYSQL_TMP_DIR';
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1(a INT, KEY(a)) ENGINE=InnoDB;
|
|
|
|
evalp ALTER TABLE t1 DATA DIRECTORY '$MYSQL_TMP_DIR' INDEX DIRECTORY '$MYSQL_TMP_DIR';
|
|
SHOW CREATE TABLE t1;
|
|
|
|
DROP TABLE t1;
|
|
|
|
--let $restart_parameters=--symbolic-links
|
|
--source include/restart_mysqld.inc
|
|
|
|
evalp CREATE TABLE t1(a INT PRIMARY KEY, b INT) ENGINE=InnoDB
|
|
DATA DIRECTORY '$MYSQL_TMP_DIR' INDEX DIRECTORY '$MYSQL_TMP_DIR/other';
|
|
evalp CREATE TABLE t2(a INT PRIMARY KEY, b INT) ENGINE=InnoDB
|
|
DATA DIRECTORY '$MYSQL_TMP_DIR' INDEX DIRECTORY '$MYSQL_TMP_DIR';
|
|
|
|
TRUNCATE TABLE t1;
|
|
TRUNCATE TABLE t2;
|
|
|
|
--let $restart_parameters=
|
|
--source include/restart_mysqld.inc
|
|
|
|
# Native ALTER will retain DATA DIRECTORY
|
|
ALTER TABLE t1 FORCE, ALGORITHM=INPLACE;
|
|
ALTER TABLE t2 FORCE, ALGORITHM=COPY;
|
|
OPTIMIZE TABLE t1;
|
|
--list_files $MYSQL_TMP_DIR/test
|
|
DROP TABLE t2;
|
|
|
|
RENAME TABLE t1 TO t2;
|
|
ALTER TABLE t2 ADD UNIQUE INDEX(b), RENAME TO t3;
|
|
|
|
ALTER TABLE t3 RENAME TO t2;
|
|
ALTER TABLE t2 DROP INDEX b, RENAME TO t1;
|
|
ALTER TABLE t1 CHANGE b c INT;
|
|
ALTER TABLE t1 CHANGE c b INT NOT NULL;
|
|
|
|
--list_files $MYSQL_TMP_DIR/test
|
|
# TRUNCATE TABLE will discard DATA DIRECTORY.
|
|
TRUNCATE TABLE t1;
|
|
--list_files $MYSQL_TMP_DIR/test
|
|
DROP TABLE t1;
|