mariadb/mysql-test/t/tablespace.test
Magnus Blåudd 0be575b7c8 Bug#60111 storage type for table not saved in .frm
- Add new "format section" in extra data segment with additional table and
   column properties. This was originally introduced in 5.1.20 based MySQL Cluster
 - Remove hardcoded STORAGE DISK for table and instead
   output the real storage format used. Keep both TABLESPACE
   and STORAGE inside same version guard.
 - Implement default version of handler::get_tablespace_name() since tablespace
   is now available in share and it's unnecessary for each handler  to implement.
   (the function could actually be removed totally now).
 - Add test for combinations of TABLESPACE  and STORAGE with CREATE TABLE
   and ALTER TABLE
 - Add test to show that 5.5 now can read a .frm file created by MySQL Cluster
   7.0.22. Although it does not yet show the column level attributes, they are read.
2011-03-04 09:41:29 +01:00

122 lines
2.8 KiB
Text

#
# BUG#60111 storage type for table not saved in .frm
#
#
# Check that the table options for TABLESPACE and STORAGE
# are printed in SHOW CREATE TABLE
#
# TABLESPACE only
CREATE TABLE t1(a int) TABLESPACE ts ENGINE=MyISAM;
SHOW CREATE TABLE t1;
DROP TABLE t1;
# TABLESPACE + STORAGE DISK
CREATE TABLE t1(a int) TABLESPACE ts STORAGE DISK ENGINE=MyISAM;
SHOW CREATE TABLE t1;
DROP TABLE t1;
# TABLESPACE + STORAGE MEMORY
CREATE TABLE t1(a int) TABLESPACE ts STORAGE MEMORY ENGINE=MyISAM;
SHOW CREATE TABLE t1;
DROP TABLE t1;
# STORAGE MEMORY only
CREATE TABLE t1(a int) STORAGE MEMORY ENGINE=MyISAM;
SHOW CREATE TABLE t1;
DROP TABLE t1;
# STORAGE DISK only
CREATE TABLE t1(a int) STORAGE DISK ENGINE=MyISAM;
SHOW CREATE TABLE t1;
DROP TABLE t1;
#
# Check that the table options for TABLESPACE and STORAGE
# are kept in an ALTER
#
# TABLESPACE only
CREATE TABLE t1(a int) TABLESPACE ts ENGINE=MyISAM;
ALTER TABLE t1 ADD COLUMN b int;
SHOW CREATE TABLE t1;
DROP TABLE t1;
# TABLESPACE and STORAGE DISK
CREATE TABLE t1(a int) TABLESPACE ts STORAGE DISK ENGINE=MyISAM;
ALTER TABLE t1 ADD COLUMN b int;
SHOW CREATE TABLE t1;
DROP TABLE t1;
#
# Check that the table options for TABLESPACE and STORAGE
# can be changed with an ALTER
#
# TABLESPACE only
CREATE TABLE t1(a int) ENGINE=MyISAM;
ALTER TABLE t1 TABLESPACE ts;
SHOW CREATE TABLE t1;
ALTER TABLE t1 TABLESPACE ts2;
SHOW CREATE TABLE t1;
DROP TABLE t1;
# STORAGE only
CREATE TABLE t1(a int) ENGINE=MyISAM;
ALTER TABLE t1 STORAGE MEMORY;
SHOW CREATE TABLE t1;
ALTER TABLE t1 STORAGE DISK;
SHOW CREATE TABLE t1;
DROP TABLE t1;
# TABLESPACE and STORAGE
CREATE TABLE t1(a int) ENGINE=MyISAM;
ALTER TABLE t1 STORAGE MEMORY TABLESPACE ts;
SHOW CREATE TABLE t1;
ALTER TABLE t1 STORAGE DISK TABLESPACE ts2;
SHOW CREATE TABLE t1;
DROP TABLE t1;
#
# Check that it's possible to read a .frm fle created
# by MySQL Cluster 7.0(which introduced the new "format
# section) with this statement:
#
# CREATE TABLE cluster_7022_table
# (
# a int primary key,
# b int,
# c int STORAGE DISK,
# d int STORAGE MEMORY NOT NULL,
# e int COLUMN_FORMAT DYNAMIC,
# f int COLUMN_FORMAT FIXED,
# g int COLUMN_FORMAT DEFAULT,
# h int STORAGE DISK COLUMN_FORMAT DYNAMIC NOT NULL,
# i int STORAGE MEMORY COLUMN_FORMAT DYNAMIC,
# j int STORAGE DISK COLUMN_FORMAT FIXED,
# k int STORAGE MEMORY COLUMN_FORMAT FIXED
# ) STORAGE DISK TABLESPACE the_tablespacename ENGINE=MyISAM;
#
# NOTE! The column level properties will not yet show up
# in SHOW CREATE TABLE of MySQL Server(although they are
# visible in .trace file)
#
let $MYSQLD_DATADIR= `SELECT @@datadir`;
copy_file std_data/cluster_7022_table.frm $MYSQLD_DATADIR/test/t1.frm;
copy_file std_data/cluster_7022_table.MYD $MYSQLD_DATADIR/test/t1.MYD;
copy_file std_data/cluster_7022_table.MYI $MYSQLD_DATADIR/test/t1.MYI;
SHOW CREATE TABLE t1;
DROP TABLE t1;