DROP TABLE IF EXISTS t1,t2,t3,t2aA,t1Aa; DROP DATABASE IF EXISTS `TEST_$1`; DROP DATABASE IF EXISTS `test_$1`; DROP DATABASE IF EXISTS mysqltest_LC2; CREATE TABLE T1 (a int) ENGINE=MyISAM; INSERT INTO T1 VALUES (1); SHOW TABLES LIKE "T1"; Tables_in_test (T1) T1 SHOW TABLES LIKE "t1"; Tables_in_test (t1) T1 SHOW CREATE TABLE T1; Table Create Table T1 CREATE TABLE `T1` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci RENAME TABLE T1 TO T2; SHOW TABLES LIKE "T2"; Tables_in_test (T2) T2 SELECT * FROM t2; a 1 RENAME TABLE T2 TO t3; SHOW TABLES LIKE "T3"; Tables_in_test (T3) t3 RENAME TABLE T3 TO T1; SHOW TABLES LIKE "T1"; Tables_in_test (T1) T1 ALTER TABLE T1 add b int; SHOW TABLES LIKE "T1"; Tables_in_test (T1) T1 ALTER TABLE T1 RENAME T2; SHOW TABLES LIKE "T2"; Tables_in_test (T2) T2 LOCK TABLE T2 WRITE; ALTER TABLE T2 drop b; SHOW TABLES LIKE "T2"; Tables_in_test (T2) T2 UNLOCK TABLES; RENAME TABLE T2 TO T1; SHOW TABLES LIKE "T1"; Tables_in_test (T1) T1 SELECT * from T1; a 1 DROP TABLE T1; CREATE DATABASE `TEST_$1`; SHOW DATABASES LIKE "TEST%"; Database (TEST%) test TEST_$1 DROP DATABASE `test_$1`; CREATE TABLE T1 (a int) engine=innodb; INSERT INTO T1 VALUES (1); SHOW TABLES LIKE "T1"; Tables_in_test (T1) T1 SHOW TABLES LIKE "t1"; Tables_in_test (t1) T1 SHOW CREATE TABLE T1; Table Create Table T1 CREATE TABLE `T1` ( `a` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci RENAME TABLE T1 TO T2; SHOW TABLES LIKE "T2"; Tables_in_test (T2) T2 SELECT * FROM t2; a 1 RENAME TABLE T2 TO t3; SHOW TABLES LIKE "T3"; Tables_in_test (T3) t3 RENAME TABLE T3 TO T1; SHOW TABLES LIKE "T1"; Tables_in_test (T1) T1 ALTER TABLE T1 add b int; SHOW TABLES LIKE "T1"; Tables_in_test (T1) T1 ALTER TABLE T1 RENAME T2; SHOW TABLES LIKE "T2"; Tables_in_test (T2) T2 LOCK TABLE T2 WRITE; ALTER TABLE T2 drop b; SHOW TABLES LIKE "T2"; Tables_in_test (T2) T2 UNLOCK TABLES; RENAME TABLE T2 TO T1; SHOW TABLES LIKE "T1"; Tables_in_test (T1) T1 SELECT * from T1; a 1 DROP TABLE T1; create table T1 (EVENT_ID int auto_increment primary key, LOCATION char(20)); insert into T1 values (NULL,"Mic-4"),(NULL,"Mic-5"),(NULL,"Mic-6"); SELECT LOCATION FROM T1 WHERE EVENT_ID=2 UNION ALL SELECT LOCATION FROM T1 WHERE EVENT_ID=3; LOCATION Mic-5 Mic-6 SELECT LOCATION FROM T1 WHERE EVENT_ID=2 UNION ALL SELECT LOCATION FROM T1 WHERE EVENT_ID=3; LOCATION Mic-5 Mic-6 SELECT LOCATION FROM T1 WHERE EVENT_ID=2 UNION ALL SELECT LOCATION FROM T1 WHERE EVENT_ID=3; LOCATION Mic-5 Mic-6 drop table T1; create table T1 (A int); alter table T1 add index (A); show tables like 'T1%'; Tables_in_test (T1%) T1 alter table t1 add index (A); Warnings: Warning 1831 Duplicate index 'A_2' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release. show tables like 't1%'; Tables_in_test (t1%) t1 drop table t1; create temporary table T1(a int(11), b varchar(8)); Warnings: Warning 1681 Integer display width is deprecated and will be removed in a future release. insert into T1 values (1, 'abc'); select * from T1; a b 1 abc alter table T1 add index (a); select * from T1; a b 1 abc drop table T1; create database mysqltest_LC2; use mysqltest_LC2; create table myUC (i int); insert into myUC values (1),(2),(3); select * from myUC; i 1 2 3 use test; drop database mysqltest_LC2; create database mysqltest_LC2; use mysqltest_LC2; create table myUC (i int); select * from myUC; i use test; drop database mysqltest_LC2; create table t2aA (col1 int); create table t1Aa (col1 int); select t1Aa.col1 from t1aA,t2Aa where t1Aa.col1 = t2aA.col1; col1 drop table t2aA, t1Aa; create database mysqltest_LC2; use mysqltest_LC2; create table myUC (i int); select TABLE_SCHEMA,TABLE_NAME FROM information_schema.TABLES where TABLE_SCHEMA ='mysqltest_LC2'; TABLE_SCHEMA TABLE_NAME mysqltest_LC2 myUC use test; drop database mysqltest_LC2; # # Bug #11758687: 50924: object names not resolved correctly # on lctn2 systems # CREATE DATABASE BUP_XPFM_COMPAT_DB2; CREATE TABLE BUP_XPFM_COMPAT_DB2.TABLE2 (c13 INT) DEFAULT CHARSET latin1; CREATE TABLE BUP_XPFM_COMPAT_DB2.table1 (c13 INT) DEFAULT CHARSET latin1; CREATE TABLE bup_xpfm_compat_db2.table3 (c13 INT) DEFAULT CHARSET latin1; CREATE TRIGGER BUP_XPFM_COMPAT_DB2.trigger1 AFTER INSERT ON BUP_XPFM_COMPAT_DB2.table1 FOR EACH ROW update BUP_XPFM_COMPAT_DB2.table1 set c13=12; | CREATE TRIGGER BUP_XPFM_COMPAT_DB2.TRIGGER2 AFTER INSERT ON BUP_XPFM_COMPAT_DB2.TABLE2 FOR EACH ROW update BUP_XPFM_COMPAT_DB2.table1 set c13=12; | CREATE TRIGGER BUP_XPFM_COMPAT_DB2.TrigGer3 AFTER INSERT ON BUP_XPFM_COMPAT_DB2.TaBle3 FOR EACH ROW update BUP_XPFM_COMPAT_DB2.table1 set c13=12; | SELECT trigger_schema, trigger_name, event_object_table FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_schema COLLATE utf8_bin = 'BUP_XPFM_COMPAT_DB2' ORDER BY trigger_schema, trigger_name; TRIGGER_SCHEMA TRIGGER_NAME EVENT_OBJECT_TABLE BUP_XPFM_COMPAT_DB2 trigger1 table1 BUP_XPFM_COMPAT_DB2 TRIGGER2 TABLE2 BUP_XPFM_COMPAT_DB2 TrigGer3 table3 DROP DATABASE BUP_XPFM_COMPAT_DB2; # End of 5.1 tests # # Test for bug #44738 "fill_schema_table_from_frm() opens tables without # lowercasing table name". Due to not properly normalizing table names # in lower_case_table_names modes in this function queries to I_S which # were executed through it left entries with incorrect key in table # definition cache. As result further queries to I_S that used this # function produced stale results in cases when table definition was # changed by a DDL statement. Also combination of this issue and a # similar problem in CREATE TABLE (it also has peeked into table # definition cache using non-normalized key) led to spurious # ER_TABLE_EXISTS_ERROR errors when one tried to create table with the # same name as a previously existing but dropped table. # drop database if exists mysqltest_UPPERCASE; drop table if exists t_bug44738_UPPERCASE; create database mysqltest_UPPERCASE; use mysqltest_UPPERCASE; create table t_bug44738_UPPERCASE (i int) comment='Old comment'; create table t_bug44738_lowercase (i int) comment='Old comment'; select table_schema, table_name, table_comment from information_schema.tables where table_schema like 'mysqltest_%' and table_name like 't_bug44738_%' order by table_name; TABLE_SCHEMA TABLE_NAME TABLE_COMMENT mysqltest_UPPERCASE t_bug44738_lowercase Old comment mysqltest_UPPERCASE t_bug44738_UPPERCASE Old comment alter table t_bug44738_UPPERCASE comment='New comment'; alter table t_bug44738_lowercase comment='New comment'; # There should be no stale entries in TDC for our tables after the # above ALTER TABLE statements so new version of comments should be # returned by the below query to I_S. select table_schema, table_name, table_comment from information_schema.tables where table_schema like 'mysqltest_%' and table_name like 't_bug44738_%' order by table_name; TABLE_SCHEMA TABLE_NAME TABLE_COMMENT mysqltest_UPPERCASE t_bug44738_lowercase New comment mysqltest_UPPERCASE t_bug44738_UPPERCASE New comment drop database mysqltest_UPPERCASE; use test; # Let us check that the original test case which led to discovery # of this problem also works. create table t_bug44738_UPPERCASE (i int); select table_schema, table_name, table_comment from information_schema.tables where table_schema = 'test' and table_name like 't_bug44738_%'; TABLE_SCHEMA TABLE_NAME TABLE_COMMENT test t_bug44738_UPPERCASE drop table t_bug44738_UPPERCASE; # After the above DROP TABLE there are no entries in TDC which correspond # to our table and therefore the below statement should succeed. create table t_bug44738_UPPERCASE (i int); drop table t_bug44738_UPPERCASE; # BUG#13702397 - 64211: 'CREATE TABLE ... LIKE ...' # FAILS TO KEEP CASE # CREATE TABLE TestTable1 (a int); SHOW TABLES; Tables_in_test TestTable1 CREATE TABLE TestTable2 LIKE TestTable1; SHOW TABLES; Tables_in_test TestTable1 TestTable2 DROP TABLE TestTable1, TestTable2; # # Bug #19894615: CRASH WHEN CREATING A TABLE IN A SCHEMA THAT # WAS DROPPED AND CREATED AGAIN # CREATE SCHEMA S1; DROP SCHEMA S1; CREATE SCHEMA S1; CREATE TABLE S1.t1(i INT); DROP TABLE S1.t1; DROP SCHEMA S1; # # Bug #18895960: ASSERT IN OBJECT_CACHE.H LOADING_COMPLETED() # IN MYSQL-TRUNK-WL6378 # CREATE TABLE T1 (i INT); RENAME TABLE T1 to T2; RENAME TABLE T2 to T1; SELECT * FROM T1; i DROP TABLE T1; CREATE TABLE T1 (i INT) ENGINE= MyISAM; CREATE TABLE T2 LIKE T1; ALTER TABLE T2 ENGINE= InnoDB; DROP TABLE T2; RENAME TABLE T1 to T2; SELECT * FROM T2; i DROP TABLE T2; # # Bug#24666169: I_S.TABLE_CONSTRAINTS.CONSTRAINT_NAME IS NOT UPDATED # AFTER RENAME TABLE # CREATE TABLE t1(a INT PRIMARY KEY); CREATE TABLE T2(a INT, FOREIGN KEY(a) REFERENCES t1(a)); SELECT constraint_name FROM information_schema.referential_constraints WHERE table_name = 'T2' ORDER BY constraint_name; CONSTRAINT_NAME t2_ibfk_1 SELECT constraint_name FROM information_schema.table_constraints WHERE table_name = 'T2' ORDER BY constraint_name; constraint_name t2_ibfk_1 RENAME TABLE T2 TO T3; SELECT constraint_name FROM information_schema.referential_constraints WHERE table_name = 'T3' ORDER BY constraint_name; CONSTRAINT_NAME t3_ibfk_1 SELECT constraint_name FROM information_schema.table_constraints WHERE table_name = 'T3' ORDER BY constraint_name; constraint_name t3_ibfk_1 RENAME TABLE t3 TO T4; SELECT constraint_name FROM information_schema.referential_constraints WHERE table_name = 'T4' ORDER BY constraint_name; CONSTRAINT_NAME t4_ibfk_1 SELECT constraint_name FROM information_schema.table_constraints WHERE table_name = 'T4' ORDER BY constraint_name; constraint_name t4_ibfk_1 DROP TABLE T4; CREATE TABLE T2(a INT, CONSTRAINT T2_ibfk_1 FOREIGN KEY(a) REFERENCES t1(a)); SELECT constraint_name FROM information_schema.referential_constraints WHERE table_name = 'T2' ORDER BY constraint_name; CONSTRAINT_NAME T2_ibfk_1 SELECT constraint_name FROM information_schema.table_constraints WHERE table_name = 'T2' ORDER BY constraint_name; constraint_name T2_ibfk_1 RENAME TABLE T2 TO T3; SELECT constraint_name FROM information_schema.referential_constraints WHERE table_name = 'T3' ORDER BY constraint_name; CONSTRAINT_NAME T2_ibfk_1 SELECT constraint_name FROM information_schema.table_constraints WHERE table_name = 'T3' ORDER BY constraint_name; constraint_name T2_ibfk_1 ALTER TABLE T3 DROP FOREIGN KEY t2_ibfk_1; DROP TABLE T3, t1; # # BUG#28351038 - MYSQL WORKBENCH ERROR GETTING DDL FOR OBJECT ON TABLES # WITH AN UPPERCASE LETTER. # CREATE TABLE `T1` ( `id` INT NOT NULL AUTO_INCREMENT, `creation_utc` DATETIME NOT NULL, PRIMARY KEY (`id`)); CREATE TRIGGER `test`.`test_table_t1_before_insert` BEFORE INSERT ON `T1` FOR EACH ROW BEGIN SET NEW.creation_utc = UTC_TIMESTAMP(); END $$ # The SHOW CREATE TRIGGER command fails without the fix. SHOW CREATE TRIGGER `test`.`test_table_t1_before_insert`; Trigger sql_mode SQL Original Statement character_set_client collation_connection Database Collation Created test_table_t1_before_insert ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` TRIGGER `test_table_t1_before_insert` BEFORE INSERT ON `t1` FOR EACH ROW BEGIN SET NEW.creation_utc = UTC_TIMESTAMP(); END utf8mb4 utf8mb4_0900_ai_ci utf8mb4_0900_ai_ci # DROP TABLE `T1`;