polardbxengine/mysql-test/suite/ndbcluster/tablespace_datafiles.test

127 lines
3.2 KiB
Plaintext

--source include/have_ndb.inc
# Create logfile group
CREATE LOGFILE GROUP lg1
ADD UNDOFILE 'lg1_undofile.dat'
INITIAL_SIZE 1M
UNDO_BUFFER_SIZE = 1M
ENGINE=NDB;
# Create tablespace
CREATE TABLESPACE ts1
ADD DATAFILE 'ts1_datafile.dat'
USE LOGFILE GROUP lg1
INITIAL_SIZE 1M
ENGINE NDB;
# Add an extra datafile
ALTER TABLESPACE ts1
ADD DATAFILE 'ts1_datafile2.dat'
INITIAL_SIZE = 4M;
# Check for UNDO LOG file in I_S
SELECT file_name, file_type FROM information_schema.files
WHERE engine='ndbcluster' AND file_type = 'UNDO LOG';
# Check for DATAFILE in I_S
SELECT file_name, file_type FROM information_schema.files
WHERE engine='ndbcluster' AND file_type = 'DATAFILE';
# Drop datafile from tablespace
ALTER TABLESPACE ts1
DROP DATAFILE 'ts1_datafile.dat';
# Drop second datafile from NDB
ALTER TABLESPACE ts1
DROP DATAFILE 'ts1_datafile2.dat';
# Bug#26133507: ATTEMPT TO DROP NONEXISTING DATAFILE FROM TABLESPACE GIVES
# 'INCORRECT FILE NAME'
# Drop second datafile from NDB again
--error ER_MISSING_TABLESPACE_FILE
ALTER TABLESPACE ts1
DROP DATAFILE 'ts1_datafile2.dat';
# Drop tablespace
DROP TABLESPACE ts1;
# Create empty datafile
--write_file $MYSQLTEST_VARDIR/tmp/t1.dat
EOF
# Try to create tablespace with the same datafile
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
--error ER_CREATE_FILEGROUP_FAILED
--eval CREATE TABLESPACE ts1 ADD DATAFILE '$MYSQLTEST_VARDIR/tmp/t1.dat' USE LOGFILE GROUP lg1 INITIAL_SIZE 1M ENGINE NDB
SHOW WARNINGS;
# Create tablespace again this time with valid datafile
CREATE TABLESPACE ts1
ADD DATAFILE 'ts1_datafile.dat'
USE LOGFILE GROUP lg1
INITIAL_SIZE 1M
ENGINE NDB;
# Drop datafile from tablespace
ALTER TABLESPACE ts1
DROP DATAFILE 'ts1_datafile.dat';
# Drop tablespace
DROP TABLESPACE ts1;
--echo #
--echo # WL#12236 - CREATE TABLESPACE without DATAFILE clause.
--echo #
CREATE TABLESPACE ts1
USE LOGFILE GROUP lg1
INITIAL_SIZE 1M
ENGINE NDB;
let $datafile_name = `SELECT SUBSTR(file_name,3) FROM INFORMATION_SCHEMA.FILES WHERE engine='ndbcluster' AND file_type = 'DATAFILE'`;
# Drop datafile from tablespace
--replace_result $datafile_name DATAFILE_NAME
eval ALTER TABLESPACE ts1 DROP DATAFILE '$datafile_name';
DROP TABLESPACE ts1;
# create tablespace without DATAFILE clause and alter tablespace with ADD DATAFILE clause
CREATE TABLESPACE ts2
USE LOGFILE GROUP lg1
INITIAL_SIZE 1M
ENGINE NDB;
ALTER TABLESPACE ts2
ADD DATAFILE 'data_2.dat'
INITIAL_SIZE 1M;
CREATE TABLE t2 (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
last_name VARCHAR(50) NOT NULL,
first_name VARCHAR(50) NOT NULL,
dob DATE NOT NULL,
joined DATE NOT NULL,
INDEX(last_name, first_name)
)
TABLESPACE ts2 STORAGE DISK
ENGINE NDB;
INSERT INTO t2 VALUES(1,'aaa','bbb','1981-02-04','2017-07-17');
SELECT * FROM t2;
DROP TABLE t2;
ALTER TABLESPACE ts2 DROP DATAFILE 'data_2.dat';
let $datafile_name1=`SELECT SUBSTR(file_name,3) FROM INFORMATION_SCHEMA.FILES WHERE engine='ndbcluster' AND file_type = 'DATAFILE'`;
--replace_result $datafile_name1 DATAFILE_NAME
eval ALTER TABLESPACE ts2 DROP DATAFILE '$datafile_name1';
DROP TABLESPACE ts2;
# Drop logfile group
DROP LOGFILE GROUP lg1
ENGINE=NDB;
# Remove empty datafile
--remove_file $MYSQLTEST_VARDIR/tmp/t1.dat