Server IP : 172.67.216.182 / Your IP : 172.69.166.75 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /www/server/mysql/src/mysql-test/suite/parts/r/ |
Upload File : |
# # Verify that the DATA/INDEX DIR is stored and used if ALTER to MyISAM. # DROP TABLE IF EXISTS t1; SET SESSION innodb_strict_mode = ON; # # InnoDB only supports DATA DIRECTORY with innodb_file_per_table=ON # SET GLOBAL innodb_file_per_table = OFF; CREATE TABLE t1 (c1 INT) ENGINE = InnoDB PARTITION BY HASH (c1) ( PARTITION p0 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir', PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ); ERROR HY000: Table storage engine for 't1' doesn't have this option SHOW WARNINGS; Level Code Message Warning 1478 InnoDB: DATA DIRECTORY requires innodb_file_per_table. Warning 1478 InnoDB: INDEX DIRECTORY is not supported Error 1031 Table storage engine for 't1' doesn't have this option # # InnoDB is different from MyISAM in that it uses a text file # with an '.isl' extension instead of a symbolic link so that # the tablespace can be re-located on any OS. Also, instead of # putting the file directly into the DATA DIRECTORY, # it adds a folder under it with the name of the database. # Since strict mode is off, InnoDB ignores the INDEX DIRECTORY # and it is no longer part of the definition. # SET SESSION innodb_strict_mode = OFF; SET GLOBAL innodb_file_per_table = ON; CREATE TABLE t1 (c1 INT) ENGINE = InnoDB PARTITION BY HASH (c1) (PARTITION p0 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir', PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ); Warnings: Warning 1618 <INDEX DIRECTORY> option ignored Warning 1618 <INDEX DIRECTORY> option ignored SHOW WARNINGS; Level Code Message Warning 1618 <INDEX DIRECTORY> option ignored Warning 1618 <INDEX DIRECTORY> option ignored # Verifying .frm, .par, .isl & .ibd files ---- MYSQLD_DATADIR/test t1#P#p0.isl t1#P#p1.isl t1.frm ---- MYSQLTEST_VARDIR/mysql-test-data-dir/test t1#P#p0.ibd t1#P#p1.ibd # The ibd tablespaces should not be directly under the DATA DIRECTORY ---- MYSQLTEST_VARDIR/mysql-test-data-dir test ---- MYSQLTEST_VARDIR/mysql-test-idx-dir FLUSH TABLES; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) (PARTITION p0 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir/' ENGINE = InnoDB, PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir/' ENGINE = InnoDB) */ # # Verify that the DATA/INDEX DIRECTORY is stored and used if we # ALTER TABLE to MyISAM. # ALTER TABLE t1 engine=MyISAM; Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) (PARTITION p0 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir/' ENGINE = MyISAM, PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir/' ENGINE = MyISAM) */ Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. # Verifying .frm, .par and MyISAM files (.MYD, MYI) ---- MYSQLD_DATADIR/test t1#P#p0.MYD t1#P#p0.MYI t1#P#p1.MYD t1#P#p1.MYI t1.frm t1.par ---- MYSQLTEST_VARDIR/mysql-test-data-dir t1#P#p0.MYD t1#P#p1.MYD test ---- MYSQLTEST_VARDIR/mysql-test-idx-dir # # Now verify that the DATA DIRECTORY is used again if we # ALTER TABLE back to InnoDB. # SET SESSION innodb_strict_mode = ON; ALTER TABLE t1 engine=InnoDB; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (c1) (PARTITION p0 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir/' ENGINE = InnoDB, PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir/' ENGINE = InnoDB) */ # Verifying .frm, .par, .isl and InnoDB .ibd files ---- MYSQLD_DATADIR/test t1#P#p0.isl t1#P#p1.isl t1.frm ---- MYSQLTEST_VARDIR/mysql-test-data-dir test ---- MYSQLTEST_VARDIR/mysql-test-idx-dir ---- MYSQLTEST_VARDIR/mysql-test-data-dir/test t1#P#p0.ibd t1#P#p1.ibd DROP TABLE t1; # # Cleanup #