mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
2361720c98
into mysql.com:/home/my/mysql-5.1 BUILD/FINISH.sh: Auto merged BitKeeper/deleted/.del-makefilewin.i~5c8479dcb8a455b2: Auto merged BitKeeper/deleted/.del-makefilewin~13888739357b3025: Auto merged BitKeeper/deleted/.del-makefilewin~14f24a4a173e2fcd: Auto merged BitKeeper/deleted/.del-makefilewin~15e9e5c9e8fa870b: Auto merged BitKeeper/deleted/.del-makefilewin~1c53f31b88dd36e: Auto merged BitKeeper/deleted/.del-makefilewin~1dbc058d76ebf1db: Auto merged BitKeeper/deleted/.del-makefilewin~2e0407fe123f8365: Auto merged BitKeeper/deleted/.del-makefilewin~2fc379bd4065c995: Auto merged BitKeeper/deleted/.del-makefilewin~389ee2dcf79afb79: Auto merged BitKeeper/deleted/.del-makefilewin~4d139e182457e553: Auto merged BitKeeper/deleted/.del-makefilewin~5104767c73775697: Auto merged BitKeeper/deleted/.del-makefilewin~608ed49dcd88e0f7: Auto merged BitKeeper/deleted/.del-makefilewin~63acd666293282a: Auto merged BitKeeper/deleted/.del-makefilewin~6ba64863bce3d0b8: Auto merged BitKeeper/deleted/.del-makefilewin~72a64128bacce71b: Auto merged BitKeeper/deleted/.del-makefilewin~78000390c783b1c5: Auto merged BitKeeper/deleted/.del-makefilewin~7a9d7d5a42bbfaf5: Auto merged Makefile.am: Auto merged BitKeeper/deleted/.del-makefilewin~a40ea12eebdd6ef0: Auto merged BitKeeper/deleted/.del-makefilewin~aeea7c82f21f7cf5: Auto merged BitKeeper/deleted/.del-makefilewin~b643e38d8da389ac: Auto merged BitKeeper/deleted/.del-makefilewin~c7b621c745e5de95: Auto merged BitKeeper/deleted/.del-makefilewin~c8273a47b90f52bb: Auto merged BitKeeper/deleted/.del-makefilewin~d1a9d1f7d33fcb73: Auto merged BitKeeper/deleted/.del-makefilewin~d37b6b303348c871: Auto merged BitKeeper/deleted/.del-makefilewin~d90f35fdc3f2ee5f: Auto merged BitKeeper/deleted/.del-makefilewin~dc4b8ad5ea53bd: Auto merged BitKeeper/deleted/.del-makefilewin~dea10ec1c94f7be: Auto merged BitKeeper/deleted/.del-makefilewin~ef3a208fa0e9b0db: Auto merged BitKeeper/deleted/.del-makefilewin~f1e3b890aa1c9ea3: Auto merged BitKeeper/deleted/.del-makefilewin~f4b7b99a887b7de: Auto merged BitKeeper/deleted/.del-makefilewin~fdda94ad32fa9e34: Auto merged BitKeeper/deleted/.del-my_cnf~977f69858affc57b: Auto merged BitKeeper/etc/config: Auto merged VC++Files/libmysqld/libmysqld.dsp: Auto merged VC++Files/sql/mysqld.dsp: Auto merged client/mysqltest.c: Auto merged include/Makefile.am: Auto merged include/base64.h: Auto merged include/my_base.h: Auto merged include/mysql_com.h: Auto merged libmysqld/Makefile.am: Auto merged mysql-test/mysql-test-run.pl: Auto merged mysql-test/mysql-test-run.sh: Auto merged mysql-test/r/ndb_basic.result: Auto merged mysql-test/r/ndb_condition_pushdown.result: Auto merged mysql-test/t/alter_table.test: Auto merged mysql-test/t/disabled.def: Auto merged mysql-test/t/query_cache.test: Auto merged mysys/Makefile.am: Auto merged mysys/base64.c: Auto merged scripts/make_win_src_distribution.sh: Auto merged scripts/mysql_create_system_tables.sh: Auto merged scripts/mysql_fix_privilege_tables.sql: Auto merged sql/Makefile.am: Auto merged sql/field.cc: Auto merged sql/field.h: Auto merged sql/ha_berkeley.cc: Auto merged sql/ha_berkeley.h: Auto merged sql/ha_federated.cc: Auto merged sql/ha_innodb.cc: Auto merged sql/ha_myisam.cc: Auto merged sql/ha_ndbcluster.cc: Auto merged sql/handler.h: Auto merged sql/item.cc: Auto merged sql/item_subselect.cc: Auto merged sql/log.cc: Auto merged sql/log_event.cc: Auto merged sql/mysqld.cc: Auto merged sql/opt_range.cc: Auto merged sql/repl_failsafe.cc: Auto merged sql/slave.cc: Auto merged sql/slave.h: Auto merged sql/sp.cc: Auto merged sql/sql_acl.cc: Auto merged sql/sql_base.cc: Auto merged sql/sql_cache.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_delete.cc: Auto merged sql/sql_help.cc: Auto merged sql/sql_insert.cc: Auto merged sql/sql_lex.cc: Auto merged sql/sql_lex.h: Auto merged sql/sql_load.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_prepare.cc: Auto merged sql/sql_repl.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_select.h: Auto merged sql/sql_show.cc: Auto merged sql/sql_yacc.yy: Auto merged sql/table.h: Auto merged storage/heap/_check.c: Auto merged storage/heap/hp_create.c: Auto merged storage/innobase/include/Makefile.am: Auto merged storage/innobase/include/rem0rec.h: Auto merged storage/innobase/include/rem0rec.ic: Auto merged storage/innobase/row/row0ins.c: Auto merged storage/innobase/row/row0upd.c: Auto merged storage/myisam/mi_check.c: Auto merged storage/myisam/mi_delete.c: Auto merged storage/myisam/mi_rkey.c: Auto merged storage/myisam/mi_rnext_same.c: Auto merged storage/myisam/mi_search.c: Auto merged storage/myisam/mi_write.c: Auto merged storage/myisam/myisamchk.c: Auto merged storage/myisam/myisamdef.h: Auto merged storage/myisam/sort.c: Auto merged storage/myisammrg/myrg_queue.c: Auto merged storage/ndb/config/type_util.mk.am: Auto merged storage/ndb/include/kernel/signaldata/DumpStateOrd.hpp: Auto merged storage/ndb/include/mgmapi/mgmapi_config_parameters.h: Auto merged storage/ndb/include/mgmapi/ndbd_exit_codes.h: Auto merged storage/ndb/include/transporter/TransporterCallback.hpp: Auto merged storage/ndb/src/common/mgmcommon/IPCConfig.cpp: Auto merged storage/ndb/src/common/transporter/SHM_Transporter.cpp: Auto merged storage/ndb/src/common/transporter/SHM_Transporter.hpp: Auto merged storage/ndb/src/common/transporter/SHM_Transporter.unix.cpp: Auto merged storage/ndb/src/common/transporter/SHM_Transporter.win32.cpp: Auto merged storage/ndb/src/common/transporter/Transporter.hpp: Auto merged storage/ndb/src/common/transporter/TransporterRegistry.cpp: Auto merged storage/ndb/src/common/util/Makefile.am: Auto merged storage/ndb/src/common/util/Parser.cpp: Auto merged storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp: Auto merged storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp: Auto merged storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp: Auto merged storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp: Auto merged storage/ndb/src/kernel/error/ndbd_exit_codes.c: Auto merged storage/ndb/src/kernel/vm/FastScheduler.cpp: Auto merged storage/ndb/src/kernel/vm/TransporterCallback.cpp: Auto merged storage/ndb/src/kernel/vm/VMSignal.hpp: Auto merged storage/ndb/src/mgmapi/mgmapi.cpp: Auto merged storage/ndb/src/mgmsrv/ConfigInfo.cpp: Auto merged storage/ndb/src/mgmsrv/InitConfigFileParser.cpp: Auto merged storage/ndb/src/mgmsrv/MgmtSrvr.cpp: Auto merged storage/ndb/src/mgmsrv/MgmtSrvr.hpp: Auto merged storage/ndb/src/mgmsrv/Services.cpp: Auto merged storage/ndb/src/ndbapi/TransporterFacade.cpp: Auto merged storage/ndb/test/ndbapi/testBackup.cpp: Auto merged storage/ndb/test/ndbapi/testOperations.cpp: Auto merged storage/ndb/test/src/HugoCalculator.cpp: Auto merged storage/ndb/tools/ndb_condig.cpp: Auto merged strings/ctype-big5.c: Auto merged strings/ctype-ucs2.c: Auto merged support-files/mysql.spec.sh: Auto merged BUILD/SETUP.sh: manual merge configure.in: manual merge mysql-test/r/alter_table.result: manual merge sql/handler.cc: manual merge sql/mysql_priv.h: manual merge sql/records.cc: manual merge sql/share/errmsg.txt: manual merge sql/sql_table.cc: manual merge Fix labels sql/sql_update.cc: manual merge sql/table.cc: manual merge sql/unireg.cc: manual merge storage/ndb/config/type_ndbapi.mk.am: manual merge
431 lines
11 KiB
Text
431 lines
11 KiB
Text
#
|
||
# Test of alter table
|
||
#
|
||
--disable_warnings
|
||
drop table if exists t1,t2;
|
||
drop database if exists mysqltest;
|
||
--enable_warnings
|
||
|
||
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);
|
||
insert into t1 values (2,4,3,5,"PENDING",1,7);
|
||
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;
|
||
select * from t1;
|
||
drop table t1;
|
||
|
||
create table t1 (bandID MEDIUMINT UNSIGNED NOT NULL PRIMARY KEY, payoutID SMALLINT UNSIGNED NOT NULL);
|
||
insert into t1 (bandID,payoutID) VALUES (1,6),(2,6),(3,4),(4,9),(5,10),(6,1),(7,12),(8,12);
|
||
alter table t1 add column new_col int, order by payoutid,bandid;
|
||
select * from t1;
|
||
alter table t1 order by bandid,payoutid;
|
||
select * from t1;
|
||
drop table t1;
|
||
|
||
# Check that pack_keys and dynamic length rows are not forced.
|
||
|
||
CREATE TABLE t1 (
|
||
GROUP_ID int(10) unsigned DEFAULT '0' NOT NULL,
|
||
LANG_ID smallint(5) unsigned DEFAULT '0' NOT NULL,
|
||
NAME varchar(80) DEFAULT '' NOT NULL,
|
||
PRIMARY KEY (GROUP_ID,LANG_ID),
|
||
KEY NAME (NAME));
|
||
#show table status like "t1";
|
||
ALTER TABLE t1 CHANGE NAME NAME CHAR(80) not null;
|
||
--replace_column 8 #
|
||
SHOW FULL COLUMNS FROM t1;
|
||
DROP TABLE t1;
|
||
|
||
#
|
||
# Test of ALTER TABLE ... ORDER BY
|
||
#
|
||
|
||
create table t1 (n int);
|
||
insert into t1 values(9),(3),(12),(10);
|
||
alter table t1 order by n;
|
||
select * from t1;
|
||
drop table t1;
|
||
|
||
CREATE TABLE t1 (
|
||
id int(11) unsigned NOT NULL default '0',
|
||
category_id tinyint(4) unsigned NOT NULL default '0',
|
||
type_id tinyint(4) unsigned NOT NULL default '0',
|
||
body text NOT NULL,
|
||
user_id int(11) unsigned NOT NULL default '0',
|
||
status enum('new','old') NOT NULL default 'new',
|
||
PRIMARY KEY (id)
|
||
) ENGINE=MyISAM;
|
||
|
||
ALTER TABLE t1 ORDER BY t1.id, t1.status, t1.type_id, t1.user_id, t1.body;
|
||
DROP TABLE t1;
|
||
|
||
#
|
||
# The following combination found a hang-bug in MyISAM
|
||
#
|
||
|
||
CREATE TABLE t1 (AnamneseId int(10) unsigned NOT NULL auto_increment,B BLOB,PRIMARY KEY (AnamneseId)) engine=myisam;
|
||
insert into t1 values (null,"hello");
|
||
LOCK TABLES t1 WRITE;
|
||
ALTER TABLE t1 ADD Column new_col int not null;
|
||
UNLOCK TABLES;
|
||
OPTIMIZE TABLE t1;
|
||
DROP TABLE t1;
|
||
|
||
#
|
||
# Drop and add an auto_increment column
|
||
#
|
||
|
||
create table t1 (i int unsigned not null auto_increment primary key);
|
||
insert into t1 values (null),(null),(null),(null);
|
||
alter table t1 drop i,add i int unsigned not null auto_increment, drop primary key, add primary key (i);
|
||
select * from t1;
|
||
drop table t1;
|
||
|
||
#
|
||
# Bug #2628: 'alter table t1 rename mysqltest.t1' silently drops mysqltest.t1
|
||
# if it exists
|
||
#
|
||
create table t1 (name char(15));
|
||
insert into t1 (name) values ("current");
|
||
create database mysqltest;
|
||
create table mysqltest.t1 (name char(15));
|
||
insert into mysqltest.t1 (name) values ("mysqltest");
|
||
select * from t1;
|
||
select * from mysqltest.t1;
|
||
--error 1050
|
||
alter table t1 rename mysqltest.t1;
|
||
select * from t1;
|
||
select * from mysqltest.t1;
|
||
drop table t1;
|
||
drop database mysqltest;
|
||
|
||
#
|
||
# ALTER TABLE ... ENABLE/DISABLE KEYS
|
||
|
||
create table t1 (n1 int not null, n2 int, n3 int, n4 float,
|
||
unique(n1),
|
||
key (n1, n2, n3, n4),
|
||
key (n2, n3, n4, n1),
|
||
key (n3, n4, n1, n2),
|
||
key (n4, n1, n2, n3) );
|
||
alter table t1 disable keys;
|
||
show keys from t1;
|
||
#let $1=10000;
|
||
let $1=10;
|
||
while ($1)
|
||
{
|
||
eval insert into t1 values($1,RAND()*1000,RAND()*1000,RAND());
|
||
dec $1;
|
||
}
|
||
alter table t1 enable keys;
|
||
show keys from t1;
|
||
drop table t1;
|
||
|
||
#
|
||
# Alter table and rename
|
||
#
|
||
|
||
create table t1 (i int unsigned not null auto_increment primary key);
|
||
alter table t1 rename t2;
|
||
alter table t2 rename t1, add c char(10) comment "no comment";
|
||
show columns from t1;
|
||
drop table t1;
|
||
|
||
# implicit analyze
|
||
|
||
create table t1 (a int, b int);
|
||
let $1=100;
|
||
while ($1)
|
||
{
|
||
eval insert into t1 values(1,$1), (2,$1), (3, $1);
|
||
dec $1;
|
||
}
|
||
alter table t1 add unique (a,b), add key (b);
|
||
show keys from t1;
|
||
analyze table t1;
|
||
show keys from t1;
|
||
drop table t1;
|
||
|
||
#
|
||
# Test of ALTER TABLE DELAYED
|
||
#
|
||
|
||
CREATE TABLE t1 (i int(10), index(i) );
|
||
ALTER TABLE t1 DISABLE KEYS;
|
||
INSERT DELAYED INTO t1 VALUES(1),(2),(3);
|
||
ALTER TABLE t1 ENABLE KEYS;
|
||
drop table t1;
|
||
|
||
#
|
||
# Test ALTER TABLE ENABLE/DISABLE keys when things are locked
|
||
#
|
||
|
||
CREATE TABLE t1 (
|
||
Host varchar(16) binary NOT NULL default '',
|
||
User varchar(16) binary NOT NULL default '',
|
||
PRIMARY KEY (Host,User)
|
||
) ENGINE=MyISAM;
|
||
|
||
ALTER TABLE t1 DISABLE KEYS;
|
||
LOCK TABLES t1 WRITE;
|
||
INSERT INTO t1 VALUES ('localhost','root'),('localhost',''),('games','monty');
|
||
SHOW INDEX FROM t1;
|
||
ALTER TABLE t1 ENABLE KEYS;
|
||
UNLOCK TABLES;
|
||
CHECK TABLES t1;
|
||
DROP TABLE t1;
|
||
|
||
#
|
||
# Test with two keys
|
||
#
|
||
|
||
CREATE TABLE t1 (
|
||
Host varchar(16) binary NOT NULL default '',
|
||
User varchar(16) binary NOT NULL default '',
|
||
PRIMARY KEY (Host,User),
|
||
KEY (Host)
|
||
) ENGINE=MyISAM;
|
||
|
||
ALTER TABLE t1 DISABLE KEYS;
|
||
SHOW INDEX FROM t1;
|
||
LOCK TABLES t1 WRITE;
|
||
INSERT INTO t1 VALUES ('localhost','root'),('localhost','');
|
||
SHOW INDEX FROM t1;
|
||
ALTER TABLE t1 ENABLE KEYS;
|
||
SHOW INDEX FROM t1;
|
||
UNLOCK TABLES;
|
||
CHECK TABLES t1;
|
||
|
||
# Test RENAME with LOCK TABLES
|
||
LOCK TABLES t1 WRITE;
|
||
ALTER TABLE t1 RENAME t2;
|
||
UNLOCK TABLES;
|
||
select * from t2;
|
||
DROP TABLE t2;
|
||
|
||
#
|
||
# Test disable keys with locking
|
||
#
|
||
CREATE TABLE t1 (
|
||
Host varchar(16) binary NOT NULL default '',
|
||
User varchar(16) binary NOT NULL default '',
|
||
PRIMARY KEY (Host,User),
|
||
KEY (Host)
|
||
) ENGINE=MyISAM;
|
||
|
||
LOCK TABLES t1 WRITE;
|
||
ALTER TABLE t1 DISABLE KEYS;
|
||
SHOW INDEX FROM t1;
|
||
DROP TABLE t1;
|
||
|
||
#
|
||
# BUG#4717 - check for valid table names
|
||
#
|
||
create table t1 (a int);
|
||
--error 1103
|
||
alter table t1 rename to `t1\\`;
|
||
--error 1103
|
||
rename table t1 to `t1\\`;
|
||
drop table t1;
|
||
|
||
#
|
||
# BUG#6236 - ALTER TABLE MODIFY should set implicit NOT NULL on PK columns
|
||
#
|
||
drop table if exists t1, t2;
|
||
create table t1 ( a varchar(10) not null primary key ) engine=myisam;
|
||
create table t2 ( a varchar(10) not null primary key ) engine=merge union=(t1);
|
||
flush tables;
|
||
alter table t1 modify a varchar(10);
|
||
show create table t2;
|
||
flush tables;
|
||
alter table t1 modify a varchar(10) not null;
|
||
show create table t2;
|
||
drop table if exists t1, t2;
|
||
|
||
# The following is also part of bug #6236 (CREATE TABLE didn't properly count
|
||
# not null columns for primary keys)
|
||
|
||
create table t1 (a int, b int, c int, d int, e int, f int, g int, h int,i int, primary key (a,b,c,d,e,f,g,i,h)) engine=MyISAM;
|
||
insert into t1 (a) values(1);
|
||
--replace_column 7 X 8 X 9 X 10 X 11 X 12 X 13 X 14 X
|
||
show table status like 't1';
|
||
alter table t1 modify a int;
|
||
--replace_column 7 X 8 X 9 X 10 X 11 X 12 X 13 X 14 X
|
||
show table status like 't1';
|
||
drop table t1;
|
||
create table t1 (a int not null, b int not null, c int not null, d int not null, e int not null, f int not null, g int not null, h int not null,i int not null, primary key (a,b,c,d,e,f,g,i,h)) engine=MyISAM;
|
||
insert into t1 (a) values(1);
|
||
--replace_column 7 X 8 X 9 X 10 X 11 X 12 X 13 X 14 X
|
||
show table status like 't1';
|
||
drop table t1;
|
||
|
||
#
|
||
# Test that data get converted when character set is changed
|
||
# Test that data doesn't get converted when src or dst is BINARY/BLOB
|
||
#
|
||
set names koi8r;
|
||
create table t1 (a char(10) character set koi8r);
|
||
insert into t1 values ('<27><><EFBFBD><EFBFBD>');
|
||
select a,hex(a) from t1;
|
||
alter table t1 change a a char(10) character set cp1251;
|
||
select a,hex(a) from t1;
|
||
alter table t1 change a a binary(4);
|
||
select a,hex(a) from t1;
|
||
alter table t1 change a a char(10) character set cp1251;
|
||
select a,hex(a) from t1;
|
||
alter table t1 change a a char(10) character set koi8r;
|
||
select a,hex(a) from t1;
|
||
alter table t1 change a a varchar(10) character set cp1251;
|
||
select a,hex(a) from t1;
|
||
alter table t1 change a a char(10) character set koi8r;
|
||
select a,hex(a) from t1;
|
||
alter table t1 change a a text character set cp1251;
|
||
select a,hex(a) from t1;
|
||
alter table t1 change a a char(10) character set koi8r;
|
||
select a,hex(a) from t1;
|
||
delete from t1;
|
||
|
||
#
|
||
# Test ALTER TABLE .. CHARACTER SET ..
|
||
#
|
||
show create table t1;
|
||
alter table t1 DEFAULT CHARACTER SET latin1;
|
||
show create table t1;
|
||
alter table t1 CONVERT TO CHARACTER SET latin1;
|
||
show create table t1;
|
||
alter table t1 DEFAULT CHARACTER SET cp1251;
|
||
show create table t1;
|
||
|
||
drop table t1;
|
||
|
||
#
|
||
# Bug#2821
|
||
# Test that table CHARACTER SET does not affect blobs
|
||
#
|
||
create table t1 (myblob longblob,mytext longtext)
|
||
default charset latin1 collate latin1_general_cs;
|
||
show create table t1;
|
||
alter table t1 character set latin2;
|
||
show create table t1;
|
||
drop table t1;
|
||
|
||
#
|
||
# Bug 2361 (Don't drop UNIQUE with DROP PRIMARY KEY)
|
||
#
|
||
|
||
CREATE TABLE t1 (a int PRIMARY KEY, b INT UNIQUE);
|
||
ALTER TABLE t1 DROP PRIMARY KEY;
|
||
SHOW CREATE TABLE t1;
|
||
--error 1091
|
||
ALTER TABLE t1 DROP PRIMARY KEY;
|
||
DROP TABLE t1;
|
||
|
||
# BUG#3899
|
||
create table t1 (a int, b int, key(a));
|
||
insert into t1 values (1,1), (2,2);
|
||
--error 1091
|
||
alter table t1 drop key no_such_key;
|
||
alter table t1 drop key a;
|
||
drop table t1;
|
||
|
||
#
|
||
# BUG 12207 alter table ... discard table space on MyISAM table causes ERROR 2013 (HY000)
|
||
#
|
||
CREATE TABLE T12207(a int) ENGINE=MYISAM;
|
||
--error 1031
|
||
ALTER TABLE T12207 DISCARD TABLESPACE;
|
||
DROP TABLE T12207;
|
||
|
||
#
|
||
# Bug #6479 ALTER TABLE ... changing charset fails for TEXT columns
|
||
#
|
||
# The column's character set was changed but the actual data was not
|
||
# modified. In other words, the values were reinterpreted
|
||
# as UTF8 instead of being converted.
|
||
create table t1 (a text) character set koi8r;
|
||
insert into t1 values (_koi8r'<27><><EFBFBD><EFBFBD>');
|
||
select hex(a) from t1;
|
||
alter table t1 convert to character set cp1251;
|
||
select hex(a) from t1;
|
||
drop table t1;
|
||
|
||
#
|
||
# Test for bug #7884 "Able to add invalid unique index on TIMESTAMP prefix"
|
||
# MySQL should not think that packed field with non-zero decimals is
|
||
# geometry field and allow to create prefix index which is
|
||
# shorter than packed field length.
|
||
#
|
||
create table t1 ( a timestamp );
|
||
--error 1089
|
||
alter table t1 add unique ( a(1) );
|
||
drop table t1;
|
||
|
||
#
|
||
# Bug#11493 - Alter table rename to default database does not work without
|
||
# db name qualifying
|
||
#
|
||
create database mysqltest;
|
||
create table t1 (c1 int);
|
||
# Move table to other database.
|
||
alter table t1 rename mysqltest.t1;
|
||
# Assure that it has moved.
|
||
--error 1051
|
||
drop table t1;
|
||
# Move table back.
|
||
alter table mysqltest.t1 rename t1;
|
||
# Assure that it is back.
|
||
drop table t1;
|
||
# Now test for correct message if no database is selected.
|
||
# Create t1 in 'test'.
|
||
create table t1 (c1 int);
|
||
# Change to other db.
|
||
use mysqltest;
|
||
# Drop the current db. This de-selects any db.
|
||
drop database mysqltest;
|
||
# Now test for correct message.
|
||
--error 1046
|
||
alter table test.t1 rename t1;
|
||
# Check that explicit qualifying works even with no selected db.
|
||
alter table test.t1 rename test.t1;
|
||
# Go back to standard 'test' db.
|
||
use test;
|
||
drop table t1;
|
||
|
||
# End of 4.1 tests
|
||
|
||
#
|
||
# Some additional tests for new, faster alter table.
|
||
# Note that most of the whole alter table code is being
|
||
# tested all around the test suite already.
|
||
#
|
||
|
||
create table t1 (v varchar(32));
|
||
insert into t1 values ('def'),('abc'),('hij'),('3r4f');
|
||
select * from t1;
|
||
# Fast alter, no copy performed
|
||
alter table t1 change v v2 varchar(32);
|
||
select * from t1;
|
||
# Fast alter, no copy performed
|
||
alter table t1 change v2 v varchar(64);
|
||
select * from t1;
|
||
update t1 set v = 'lmn' where v = 'hij';
|
||
select * from t1;
|
||
# Regular alter table
|
||
alter table t1 add i int auto_increment not null primary key first;
|
||
select * from t1;
|
||
update t1 set i=5 where i=3;
|
||
select * from t1;
|
||
alter table t1 change i i bigint;
|
||
select * from t1;
|
||
alter table t1 add unique key (i, v);
|
||
select * from t1 where i between 2 and 4 and v in ('def','3r4f','lmn');
|
||
drop table t1;
|