mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
6c431a5ecd
fix: return db name for I_S.TABLES(and others) in original letter case. if mysql starts with lower_case_table_names=1 | 2 then original db name is converted to lower case(for I_S tables). It happens when we perform add_table_to_list. to avoid this we make a copy of original db name and use the copy hereafter. mysql-test/r/lowercase_table2.result: Bug#17661 information_schema.SCHEMATA returns uppercase with lower_case_table_names = 1 test case mysql-test/t/lowercase_table2.test: Bug#17661 information_schema.SCHEMATA returns uppercase with lower_case_table_names = 1 test case
152 lines
3.5 KiB
Text
152 lines
3.5 KiB
Text
#
|
|
# Test of --lower-case-table-names=2
|
|
# (User has case insensitive file system and wants to preserve case of
|
|
# table names)
|
|
#
|
|
--source include/have_innodb.inc
|
|
--require r/lowercase2.require
|
|
disable_query_log;
|
|
show variables like "lower_case_table_names";
|
|
enable_query_log;
|
|
|
|
--disable_warnings
|
|
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;
|
|
--enable_warnings
|
|
|
|
CREATE TABLE T1 (a int);
|
|
INSERT INTO T1 VALUES (1);
|
|
SHOW TABLES LIKE "T1";
|
|
SHOW TABLES LIKE "t1";
|
|
SHOW CREATE TABLE T1;
|
|
RENAME TABLE T1 TO T2;
|
|
SHOW TABLES LIKE "T2";
|
|
SELECT * FROM t2;
|
|
RENAME TABLE T2 TO t3;
|
|
SHOW TABLES LIKE "T3";
|
|
RENAME TABLE T3 TO T1;
|
|
SHOW TABLES LIKE "T1";
|
|
ALTER TABLE T1 add b int;
|
|
SHOW TABLES LIKE "T1";
|
|
ALTER TABLE T1 RENAME T2;
|
|
SHOW TABLES LIKE "T2";
|
|
|
|
LOCK TABLE T2 WRITE;
|
|
ALTER TABLE T2 drop b;
|
|
SHOW TABLES LIKE "T2";
|
|
UNLOCK TABLES;
|
|
RENAME TABLE T2 TO T1;
|
|
SHOW TABLES LIKE "T1";
|
|
SELECT * from T1;
|
|
DROP TABLE T1;
|
|
|
|
#
|
|
# Test database level
|
|
#
|
|
|
|
CREATE DATABASE `TEST_$1`;
|
|
SHOW DATABASES LIKE "TEST%";
|
|
DROP DATABASE `test_$1`;
|
|
|
|
#
|
|
# Test of innodb tables with lower_case_table_names=2
|
|
#
|
|
|
|
CREATE TABLE T1 (a int) engine=innodb;
|
|
INSERT INTO T1 VALUES (1);
|
|
SHOW TABLES LIKE "T1";
|
|
SHOW TABLES LIKE "t1";
|
|
SHOW CREATE TABLE T1;
|
|
RENAME TABLE T1 TO T2;
|
|
SHOW TABLES LIKE "T2";
|
|
SELECT * FROM t2;
|
|
RENAME TABLE T2 TO t3;
|
|
SHOW TABLES LIKE "T3";
|
|
RENAME TABLE T3 TO T1;
|
|
SHOW TABLES LIKE "T1";
|
|
ALTER TABLE T1 add b int;
|
|
SHOW TABLES LIKE "T1";
|
|
ALTER TABLE T1 RENAME T2;
|
|
SHOW TABLES LIKE "T2";
|
|
|
|
LOCK TABLE T2 WRITE;
|
|
ALTER TABLE T2 drop b;
|
|
SHOW TABLES LIKE "T2";
|
|
UNLOCK TABLES;
|
|
RENAME TABLE T2 TO T1;
|
|
SHOW TABLES LIKE "T1";
|
|
SELECT * from T1;
|
|
DROP TABLE T1;
|
|
|
|
#
|
|
# Test problem with temporary tables (Bug #2858)
|
|
#
|
|
|
|
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;
|
|
SELECT LOCATION FROM T1 WHERE EVENT_ID=2 UNION ALL SELECT LOCATION FROM T1 WHERE EVENT_ID=3;
|
|
SELECT LOCATION FROM T1 WHERE EVENT_ID=2 UNION ALL SELECT LOCATION FROM T1 WHERE EVENT_ID=3;
|
|
drop table T1;
|
|
|
|
#
|
|
# Test name conversion with ALTER TABLE / CREATE INDEX (Bug #3109)
|
|
#
|
|
|
|
create table T1 (A int);
|
|
alter table T1 add index (A);
|
|
show tables like 'T1%';
|
|
alter table t1 add index (A);
|
|
show tables like 't1%';
|
|
drop table t1;
|
|
|
|
#
|
|
# Bug #7261: Alter table loses temp table
|
|
#
|
|
|
|
create temporary table T1(a int(11), b varchar(8));
|
|
insert into T1 values (1, 'abc');
|
|
select * from T1;
|
|
alter table T1 add index (a);
|
|
select * from T1;
|
|
drop table T1;
|
|
|
|
#
|
|
# Bug #8355: Tables not dropped from table cache on drop db
|
|
#
|
|
create database mysqltest_LC2;
|
|
use mysqltest_LC2;
|
|
create table myUC (i int);
|
|
insert into myUC values (1),(2),(3);
|
|
select * from myUC;
|
|
use test;
|
|
drop database mysqltest_LC2;
|
|
create database mysqltest_LC2;
|
|
use mysqltest_LC2;
|
|
create table myUC (i int);
|
|
select * from myUC;
|
|
use test;
|
|
drop database mysqltest_LC2;
|
|
|
|
#
|
|
# Bug #9500: Problem with WHERE clause
|
|
#
|
|
create table t2aA (col1 int);
|
|
create table t1Aa (col1 int);
|
|
select t1Aa.col1 from t1aA,t2Aa where t1Aa.col1 = t2aA.col1;
|
|
drop table t2aA, t1Aa;
|
|
|
|
# End of 4.1 tests
|
|
|
|
#
|
|
# Bug#17661 information_schema.SCHEMATA returns uppercase with lower_case_table_names = 1
|
|
#
|
|
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';
|
|
use test;
|
|
drop database mysqltest_LC2;
|