Current Path : /home/usr.opt/mysql57/mysql-test/suite/ndb/t/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //home/usr.opt/mysql57/mysql-test/suite/ndb/t/ndb_dd_alter.test |
############################################################## # Author: JBM # Date: 2006-01-12 # Purpose: To test using ndb memory and disk tables together. ############################################################## ############################################################## # Author: Nikolay # Date: 2006-05-12 # Purpose: To test using ndb memory and disk tables together. # # Select from disk into memory table # Select from disk into memory table # Create test that loads data, use mysql dump to dump data, drop table, # create table and load from mysql dump. # Use group by asc and dec; Use having; Use order by # ALTER Tests (Meta data testing): # ALTER from InnoDB to Cluster Disk Data # ALTER from MyISAM to Cluster Disk Data # ALTER from Cluster Disk Data to InnoDB # ALTER from Cluster Disk Data to MyISAM # ALTER DD Tables and add columns # ALTER DD Tables and add Indexes # ALTER DD Tables and drop columns # ############################################################## # Author: Jonathan # Date 2006-08-28 # Purpose: To take out some of the test that are already # Covered by other tests. Per Jonas # The new purpose of this test is testing "Alter" # Statements. Therefore the name is changed to # ndb_dd_alter.test # Removed tests include: # Select from disk into memory table # Select from disk into memory table # Create test that loads data, use mysql dump to dump data, drop table, # create table and load from mysql dump. # Use group by asc and dec; Use having; Use order by ############################################################## -- source include/have_ndb.inc -- source include/have_innodb.inc --disable_warnings DROP TABLE IF EXISTS test.t1; DROP TABLE IF EXISTS test.t2; --enable_warnings ############ Test Setup Section ############# -- echo **** Test Setup Section **** ################## ALTER Tests (Meta data testing) #################### CREATE LOGFILE GROUP lg ADD UNDOFILE './lg_group/undofile.dat' INITIAL_SIZE 16M UNDO_BUFFER_SIZE = 1M ENGINE=NDB; CREATE TABLESPACE ts ADD DATAFILE './table_space/datafile.dat' USE LOGFILE GROUP lg INITIAL_SIZE 36M ENGINE NDB; #### Try to ALTER from InnoDB to Cluster Disk Data CREATE TABLE test.t1 ( a1 smallint NOT NULL, a2 int NOT NULL, a3 bigint NOT NULL, a4 char(10), a5 decimal(5,1), a6 time, a7 date, a8 datetime, a9 VARCHAR(255), a10 blob, PRIMARY KEY(a1) ) ENGINE=InnoDB; let $1=20; disable_query_log; while ($1) { eval insert into test.t1 values($1, $1+1, $1+2000000000, "aaa$1", 34.2, '4:3:2', '2006-1-1', '1971-5-28 16:55:03', "bbbbbbbbbbbbb$1", "binary data"); dec $1; } enable_query_log; SHOW CREATE TABLE test.t1; SELECT * FROM test.t1 ORDER BY a1; --error ER_ALTER_OPERATION_NOT_SUPPORTED ALTER TABLE test.t1 ALGORITHM=INPLACE, TABLESPACE ts STORAGE DISK ENGINE=NDB; ALTER TABLE test.t1 ALGORITHM=COPY, TABLESPACE ts STORAGE DISK ENGINE=NDB; SHOW CREATE TABLE test.t1; # Check column storage source show_attributes.inc; SELECT * FROM test.t1 ORDER BY a1; DROP TABLE test.t1; #### Try to ALTER from MyISAM to Cluster Disk Data CREATE TABLE test.t1 ( a1 smallint NOT NULL, a2 int NOT NULL, a3 bigint NOT NULL, a4 char(10), a5 decimal(5,1), a6 time, a7 date, a8 datetime, a9 VARCHAR(255), a10 blob, PRIMARY KEY(a1) ) ENGINE=MyISAM; let $1=20; disable_query_log; while ($1) { eval insert into test.t1 values($1, $1+1, $1+2000000000, "aaa$1", 34.2, '4:3:2', '2006-1-1', '1971-5-28 16:55:03', "bbbbbbbbbbbbb$1", "binary data"); dec $1; } enable_query_log; SHOW CREATE TABLE test.t1; SELECT * FROM test.t1 ORDER BY a1; ALTER TABLE test.t1 ALGORITHM=COPY, TABLESPACE ts STORAGE DISK ENGINE=NDB; SHOW CREATE TABLE test.t1; # Check column storage source show_attributes.inc; SELECT * FROM test.t1 ORDER BY a1; #### Try to ALTER from Cluster Disk Data to InnoDB # Create tablespace in Innodb with same name as in NDB # since the ALTER from NDB to Innodb will try to ALTER the table # into a tablespace with same name in InnoDB CREATE TABLESPACE ts ADD DATAFILE 'ts_innodb.ibd' ENGINE=Innodb; --error ER_ALTER_OPERATION_NOT_SUPPORTED ALTER TABLE test.t1 ALGORITHM=INPLACE, ENGINE=InnoDB; ALTER TABLE test.t1 ALGORITHM=COPY, ENGINE=InnoDB; SHOW CREATE TABLE test.t1; SELECT * FROM test.t1 ORDER BY a1; ALTER TABLE test.t1 TABLESPACE ts STORAGE DISK ENGINE=NDB; SHOW CREATE TABLE test.t1; # Check column storage source show_attributes.inc; #### Try to ALTER from Cluster Disk Data to MyISAM --error ER_ALTER_OPERATION_NOT_SUPPORTED ALTER TABLE test.t1 ALGORITHM=INPLACE, ENGINE=MyISAM; ALTER TABLE test.t1 ALGORITHM=COPY, ENGINE=MyISAM; SHOW CREATE TABLE test.t1; DROP TABLE test.t1; #### Try to ALTER DD Tables and add columns CREATE TABLE test.t1 (a1 INT PRIMARY KEY) TABLESPACE ts STORAGE DISK ENGINE=NDB; let $1=20; disable_query_log; while ($1) { eval insert into test.t1 values($1); dec $1; } enable_query_log; SELECT * FROM test.t1 ORDER BY a1; --replace_column 13 0 14 0 15 0 16 NULL 18 0 SELECT * FROM information_schema.partitions WHERE table_name= 't1' AND partition_name = 'p0'; --error ER_ALTER_OPERATION_NOT_SUPPORTED ALTER TABLE test.t1 ALGORITHM=INPLACE, ADD a2 FLOAT, ADD a3 DOUBLE; ALTER TABLE test.t1 ALGORITHM=COPY, ADD a2 FLOAT, ADD a3 DOUBLE; --replace_column 13 0 14 0 15 0 16 NULL 18 0 SELECT * FROM information_schema.partitions WHERE table_name= 't1' AND partition_name = 'p0'; let $1=20; disable_query_log; while ($1) { eval update test.t1 set a2 = $1+1.2345, a3 = $1+20000000.00 where a1 = $1; dec $1; } enable_query_log; SELECT * FROM test.t1 ORDER BY a1; ALTER TABLE test.t1 ALGORITHM=COPY, ADD a4 BIT, ADD a5 TINYINT, ADD a6 BIGINT, ADD a7 DATE, ADD a8 TIME; let $1=20; disable_query_log; while ($1) { eval update test.t1 set a4 = 0, a5 = 1, a6 = $1+23456, a7 = '2006-1-1', a8 = '07:04:00' where a1 = $1; dec $1; } enable_query_log; SELECT a1,a2,a3,hex(a4), a5,a6,a7,a8 FROM test.t1 ORDER BY a1; ALTER TABLE test.t1 ADD a9 DATETIME, ADD a10 TINYTEXT, ADD a11 MEDIUMTEXT, ADD a12 LONGTEXT, ADD a13 TEXT, ADD a14 BLOB; SHOW CREATE TABLE test.t1; # Check column storage source show_attributes.inc; disable_query_log; set @d2 = 'dd2'; set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2); set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2); set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2); set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2); enable_query_log; let $1=20; disable_query_log; while ($1) { eval update test.t1 set a9 = '1971-5-28 16:55:03', a10 = 'abc', a11 = 'abcdefg', a12 = 'LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL', a13 = 'Text Field', a14 = @d2 where a1 = $1; dec $1; } enable_query_log; SELECT a1, a2,a3,hex(a4),a5,a6,a7,a8,a9,a10,a11,a12,a13 FROM test.t1 ORDER BY a1; #### Try to move t1 into too-small tablespace #### # Bug #45768 CREATE TABLESPACE ts2 ADD DATAFILE './table_space/datafile2.dat' USE LOGFILE GROUP lg INITIAL_SIZE 1M ENGINE NDB; --echo Expecting tablespace is full error # We mention the same error twice here to suppress printing of the error # This is required as the error contains the temp table name which # varies per-run -- disable_query_log call mtr.add_suppression("The table '#.*' is full"); -- enable_query_log --error 1114,1114 ALTER TABLE test.t1 TABLESPACE ts2 STORAGE DISK ENGINE NDB; ALTER TABLESPACE ts2 DROP DATAFILE './table_space/datafile2.dat' ENGINE NDB; DROP TABLESPACE ts2 ENGINE NDB; #### Try to ALTER DD Tables and add Indexes --error ER_ALTER_OPERATION_NOT_SUPPORTED ALTER TABLE test.t1 ALGORITHM=INPLACE, ADD INDEX a2_i (a2), ADD INDEX a3_i (a3); ALTER TABLE test.t1 ALGORITHM=COPY, ADD INDEX a2_i (a2), ADD INDEX a3_i (a3); SHOW CREATE TABLE test.t1; # Check column storage source show_attributes.inc; ALTER TABLE test.t1 ALGORITHM=INPLACE, DROP INDEX a2_i; SHOW CREATE TABLE test.t1; # Check column storage source show_attributes.inc; TRUNCATE TABLE test.t1; SHOW CREATE TABLE test.t1; # Check column storage source show_attributes.inc; #### Try to ALTER DD Tables and drop columns --error ER_ALTER_OPERATION_NOT_SUPPORTED ALTER TABLE test.t1 ALGORITHM=INPLACE, DROP a14; ALTER TABLE test.t1 ALGORITHM=COPY, DROP a14; ALTER TABLE test.t1 DROP a13; ALTER TABLE test.t1 DROP a12; ALTER TABLE test.t1 DROP a11; ALTER TABLE test.t1 DROP a10; ALTER TABLE test.t1 DROP a9; ALTER TABLE test.t1 DROP a8; ALTER TABLE test.t1 DROP a7; ALTER TABLE test.t1 DROP a6; --error ER_ALTER_OPERATION_NOT_SUPPORTED ALTER TABLE test.t1 ALGORITHM=INPLACE, DROP PRIMARY KEY; ALTER TABLE test.t1 ALGORITHM=COPY, DROP PRIMARY KEY; SHOW CREATE TABLE test.t1; # Check column storage source show_attributes.inc; DROP TABLE test.t1; # Bug#55618 create table t1 (a int primary key, b int, c int, index bc (b,c)) storage disk tablespace ts engine = ndb; alter table t1 algorithm=inplace, drop index bc; alter table t1 algorithm=inplace, add index b (b); alter table t1 algorithm=inplace, drop index b; drop table t1; ALTER TABLESPACE ts DROP DATAFILE './table_space/datafile.dat' ENGINE NDB; DROP TABLESPACE ts ENGINE NDB; DROP LOGFILE GROUP lg ENGINE=NDB; ####################### End section 4 ######################### #End 5.1 test case