mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	- 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.
		
			
				
	
	
		
			123 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
#
 | 
						|
# 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;
 |