mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-24 07:13:33 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			346 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			346 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| -- source include/have_ndb.inc
 | |
| -- source include/have_multi_ndb.inc
 | |
| -- source include/not_embedded.inc
 | |
| 
 | |
| --disable_warnings
 | |
| DROP TABLE IF EXISTS t1, t2;
 | |
| drop database if exists mysqltest;
 | |
| --enable_warnings
 | |
| 
 | |
| connect (con1,localhost,root,,test);
 | |
| connect (con2,localhost,root,,test);
 | |
| 
 | |
| connection con2;
 | |
| -- sleep 2
 | |
| connection con1;
 | |
| 
 | |
| #
 | |
| # Basic test to show that the ALTER TABLE
 | |
| #  is working
 | |
| #
 | |
| CREATE TABLE t1 (
 | |
|   a INT NOT NULL,
 | |
|   b INT NOT NULL
 | |
| ) ENGINE=ndbcluster;
 | |
| 
 | |
| INSERT INTO t1 VALUES (9410,9412);
 | |
|   
 | |
| ALTER TABLE t1 ADD COLUMN c int not null;
 | |
| SELECT * FROM t1;
 | |
| 
 | |
| DROP TABLE t1;
 | |
| 
 | |
| #
 | |
| # Verfify changing table names between databases
 | |
| #
 | |
| CREATE DATABASE mysqltest;
 | |
| USE mysqltest;
 | |
| CREATE TABLE t1 (
 | |
|   a INT NOT NULL,
 | |
|   b INT NOT NULL
 | |
| ) ENGINE=ndbcluster;
 | |
| RENAME TABLE t1 TO test.t1;
 | |
| SHOW TABLES;
 | |
| DROP DATABASE mysqltest;
 | |
| USE test;
 | |
| SHOW TABLES;
 | |
| DROP TABLE t1;
 | |
| 
 | |
| #
 | |
| # More advanced test
 | |
| #
 | |
| create table t1 (
 | |
| col1 int not null auto_increment primary key,
 | |
| col2 varchar(30) not null,
 | |
| col3 varchar (20) not null,
 | |
| col4 varchar(4) not null,
 | |
| col5 enum('PENDING', 'ACTIVE', 'DISABLED') not null,
 | |
| col6 int not null, to_be_deleted int)  ENGINE=ndbcluster;
 | |
| --replace_column 7 # 8 # 10 # 12 # 13 # 14 # 18 #
 | |
| show table status;
 | |
| SET SQL_MODE=NO_AUTO_VALUE_ON_ZERO;
 | |
| insert into t1 values
 | |
| (0,4,3,5,"PENDING",1,7),(NULL,4,3,5,"PENDING",1,7),(31,4,3,5,"PENDING",1,7), (7,4,3,5,"PENDING",1,7), (NULL,4,3,5,"PENDING",1,7), (100,4,3,5,"PENDING",1,7), (99,4,3,5,"PENDING",1,7), (8,4,3,5,"PENDING",1,7), (NULL,4,3,5,"PENDING",1,7);
 | |
| --replace_column 7 # 8 # 10 # 12 # 13 # 14 # 18 #
 | |
| show table status;
 | |
| select * from t1 order by col1;
 | |
| alter table t1
 | |
| add column col4_5 varchar(20) not null after col4,
 | |
| add column col7 varchar(30) not null after col5,
 | |
| add column col8 datetime not null, drop column to_be_deleted,
 | |
| change column col2 fourth varchar(30) not null after col3,
 | |
| modify column col6 int not null first;
 | |
| --replace_column 7 # 8 # 10 # 12 # 13 # 14 # 18 #
 | |
| show table status;
 | |
| select * from t1 order by col1;
 | |
| insert into t1 values (2, NULL,4,3,5,99,"PENDING","EXTRA",'2004-01-01 00:00:00');
 | |
| --replace_column 7 # 8 # 10 # 12 # 13 # 14 # 18 #
 | |
| show table status;
 | |
| select * from t1 order by col1;
 | |
| delete from t1;
 | |
| insert into t1 values (0,0,4,3,5,99,"PENDING","EXTRA",'2004-01-01 00:00:00');
 | |
| SET SQL_MODE='';
 | |
| insert into t1 values (1,0,4,3,5,99,"PENDING","EXTRA",'2004-01-01 00:00:00');
 | |
| select * from t1 order by col1;
 | |
| alter table t1 drop column col4_5;
 | |
| insert into t1 values (2,0,4,3,5,"PENDING","EXTRA",'2004-01-01 00:00:00');
 | |
| select * from t1 order by col1;
 | |
| drop table t1;
 | |
| 
 | |
| 
 | |
| #
 | |
| # Check that invalidating dictionary cache works
 | |
| #
 | |
| 
 | |
| CREATE TABLE t1 (
 | |
|   a INT NOT NULL,
 | |
|   b INT NOT NULL
 | |
| ) ENGINE=ndbcluster;
 | |
| 
 | |
| INSERT INTO t1 VALUES (9410,9412);
 | |
| 
 | |
| ALTER TABLE t1 ADD COLUMN c int not null;
 | |
| select * from t1 order by a;
 | |
| 
 | |
| connection con2;
 | |
| select * from t1 order by a;
 | |
| alter table t1 drop c;
 | |
| 
 | |
| connection con1;
 | |
| select * from t1 order by a;
 | |
| drop table t1;
 | |
| 
 | |
| connection con2;
 | |
| --error 1146
 | |
| select * from t1 order by a;
 | |
| 
 | |
| CREATE TABLE t1 (
 | |
|   a INT NOT NULL PRIMARY KEY,
 | |
|   b INT NOT NULL
 | |
| ) ENGINE=ndbcluster;
 | |
| 
 | |
| INSERT INTO t1 VALUES (0,1),(17,18);
 | |
| select * from t1 order by a;
 | |
| SET SQL_MODE=NO_AUTO_VALUE_ON_ZERO;
 | |
| alter table  t1 modify column a int not null auto_increment;
 | |
| SET SQL_MODE='';
 | |
| select * from t1 order by a;
 | |
| INSERT INTO t1 VALUES (0,19),(20,21);
 | |
| select * from t1 order by a;
 | |
| drop table t1;
 | |
| 
 | |
| CREATE TABLE t1 (
 | |
|   a INT NOT NULL PRIMARY KEY,
 | |
|   b INT NOT NULL
 | |
| ) ENGINE=ndbcluster;
 | |
| 
 | |
| INSERT INTO t1 VALUES (0,1),(17,18);
 | |
| select * from t1 order by a;
 | |
| alter table  t1 add c int not null unique auto_increment;
 | |
| select c from t1 order by c;
 | |
| INSERT INTO t1 VALUES (1,2,0),(18,19,4),(20,21,0);
 | |
| select c from t1 order by c;
 | |
| drop table t1;
 | |
| 
 | |
| --disable_ps_protocol
 | |
| create table t1 ( a int primary key, b varchar(10), c varchar(10), index (b) )
 | |
| engine=ndb;
 | |
| insert into t1 values (1,'one','one'), (2,'two','two'), (3,'three','three');
 | |
| create index c on t1(c); 
 | |
| connection server2;
 | |
| select * from t1 where b = 'two';
 | |
| connection server1;
 | |
| alter table t1 drop index c;
 | |
| connection server2;
 | |
| # This should fail since index information is not automatically refreshed
 | |
| --error 1015
 | |
| select * from t1 where b = 'two';
 | |
| select * from t1 where b = 'two';
 | |
| connection server1;
 | |
| drop table t1;
 | |
| --enable_ps_protocol
 | |
| 
 | |
| #--disable_warnings
 | |
| #DROP TABLE IF EXISTS t2;
 | |
| #--enable_warnings
 | |
| 
 | |
| #create table t2 (a int NOT NULL PRIMARY KEY) engine=myisam;
 | |
| #let $1=12001;
 | |
| #disable_query_log;
 | |
| #while ($1)
 | |
| #{
 | |
| # eval insert into t2 values($1);
 | |
| # dec $1;
 | |
| #}
 | |
| #enable_query_log;
 | |
| #alter table t2 engine=ndbcluster;
 | |
| #alter table t2 add c int;
 | |
| #--error 1297
 | |
| #delete from t2;
 | |
| #to make sure we do a full table scan
 | |
| #select count(*) from t2 where a+0 > 0;
 | |
| #truncate table t2;
 | |
| #select count(*) from t2;
 | |
| #drop table t2;
 | |
| 
 | |
| connection server1;
 | |
| create table t3 (a int primary key) engine=ndbcluster;
 | |
| 
 | |
| connection server2;
 | |
| begin;
 | |
| insert into t3 values (1);
 | |
| 
 | |
| connection server1;
 | |
| alter table t3 rename t4;
 | |
| 
 | |
| connection server2;
 | |
| # This should work as transaction is ongoing...
 | |
| delete from t3;
 | |
| insert into t3 values (1);
 | |
| commit; 
 | |
| 
 | |
| # This should fail as its a new transaction
 | |
| --error 1015
 | |
| select * from t3;
 | |
| select * from t4;
 | |
| drop table t4;
 | |
| show tables;
 | |
| connection server1;
 | |
| 
 | |
| create table t1 (
 | |
| ai bigint auto_increment,
 | |
| c001 int(11) not null,
 | |
| c002 int(11) not null,
 | |
| c003 int(11) not null,
 | |
| c004 int(11) not null,
 | |
| c005 int(11) not null,
 | |
| c006 int(11) not null,
 | |
| c007 int(11) not null,
 | |
| c008 int(11) not null,
 | |
| c009 int(11) not null,
 | |
| c010 int(11) not null,
 | |
| c011 int(11) not null,
 | |
| c012 int(11) not null,
 | |
| c013 int(11) not null,
 | |
| c014 int(11) not null,
 | |
| c015 int(11) not null,
 | |
| c016 int(11) not null,
 | |
| c017 int(11) not null,
 | |
| c018 int(11) not null,
 | |
| c019 int(11) not null,
 | |
| c020 int(11) not null,
 | |
| c021 int(11) not null,
 | |
| c022 int(11) not null,
 | |
| c023 int(11) not null,
 | |
| c024 int(11) not null,
 | |
| c025 int(11) not null,
 | |
| c026 int(11) not null,
 | |
| c027 int(11) not null,
 | |
| c028 int(11) not null,
 | |
| c029 int(11) not null,
 | |
| c030 int(11) not null,
 | |
| c031 int(11) not null,
 | |
| c032 int(11) not null,
 | |
| c033 int(11) not null,
 | |
| c034 int(11) not null,
 | |
| c035 int(11) not null,
 | |
| c036 int(11) not null,
 | |
| c037 int(11) not null,
 | |
| c038 int(11) not null,
 | |
| c039 int(11) not null,
 | |
| c040 int(11) not null,
 | |
| c041 int(11) not null,
 | |
| c042 int(11) not null,
 | |
| c043 int(11) not null,
 | |
| c044 int(11) not null,
 | |
| c045 int(11) not null,
 | |
| c046 int(11) not null,
 | |
| c047 int(11) not null,
 | |
| c048 int(11) not null,
 | |
| c049 int(11) not null,
 | |
| c050 int(11) not null,
 | |
| c051 int(11) not null,
 | |
| c052 int(11) not null,
 | |
| c053 int(11) not null,
 | |
| c054 int(11) not null,
 | |
| c055 int(11) not null,
 | |
| c056 int(11) not null,
 | |
| c057 int(11) not null,
 | |
| c058 int(11) not null,
 | |
| c059 int(11) not null,
 | |
| c060 int(11) not null,
 | |
| c061 int(11) not null,
 | |
| c062 int(11) not null,
 | |
| c063 int(11) not null,
 | |
| c064 int(11) not null,
 | |
| c065 int(11) not null,
 | |
| c066 int(11) not null,
 | |
| c067 int(11) not null,
 | |
| c068 int(11) not null,
 | |
| c069 int(11) not null,
 | |
| c070 int(11) not null,
 | |
| c071 int(11) not null,
 | |
| c072 int(11) not null,
 | |
| c073 int(11) not null,
 | |
| c074 int(11) not null,
 | |
| c075 int(11) not null,
 | |
| c076 int(11) not null,
 | |
| c077 int(11) not null,
 | |
| c078 int(11) not null,
 | |
| c079 int(11) not null,
 | |
| c080 int(11) not null,
 | |
| c081 int(11) not null,
 | |
| c082 int(11) not null,
 | |
| c083 int(11) not null,
 | |
| c084 int(11) not null,
 | |
| c085 int(11) not null,
 | |
| c086 int(11) not null,
 | |
| c087 int(11) not null,
 | |
| c088 int(11) not null,
 | |
| c089 int(11) not null,
 | |
| c090 int(11) not null,
 | |
| c091 int(11) not null,
 | |
| c092 int(11) not null,
 | |
| c093 int(11) not null,
 | |
| c094 int(11) not null,
 | |
| c095 int(11) not null,
 | |
| c096 int(11) not null,
 | |
| c097 int(11) not null,
 | |
| c098 int(11) not null,
 | |
| c099 int(11) not null,
 | |
| c100 int(11) not null,
 | |
| c101 int(11) not null,
 | |
| c102 int(11) not null,
 | |
| c103 int(11) not null,
 | |
| c104 int(11) not null,
 | |
| c105 int(11) not null,
 | |
| c106 int(11) not null,
 | |
| c107 int(11) not null,
 | |
| c108 int(11) not null,
 | |
| c109 int(11) not null,
 | |
| primary key (ai),
 | |
| unique key tx1 (c002, c003, c004, c005)) engine=ndb;
 | |
| 
 | |
| create index tx2 
 | |
| on t1 (c010, c011, c012, c013);
 | |
| 
 | |
| drop table t1;
 | |
| 
 | |
| # simple test that auto incr is not lost at rename or alter
 | |
| create table t1 (a int primary key auto_increment, b int) engine=ndb;
 | |
| insert into t1 (b) values (101),(102),(103);
 | |
| select * from t1 where a = 3;
 | |
| alter table t1 rename t2;
 | |
| insert into t2 (b) values (201),(202),(203);
 | |
| select * from t2 where a = 6;
 | |
| alter table t2 add c int;
 | |
| insert into t2 (b) values (301),(302),(303);
 | |
| select * from t2 where a = 9;
 | |
| alter table t2 rename t1;
 | |
| insert into t1 (b) values (401),(402),(403);
 | |
| select * from t1 where a = 12;
 | |
| drop table t1;
 | |
| 
 | |
| # End of 4.1 tests
 | |
| 
 | 
