From c23ef5e1f301c7184ba4c66352569402012d2569 Mon Sep 17 00:00:00 2001 From: unknown <jimw@mysql.com> Date: Wed, 8 Jun 2005 14:35:16 -0700 Subject: [PATCH] Fix problem with handling of lower_case_table_name == 2 when the case in the FROM and WHERE clauses didn't agree. (Bug #9500) mysql-test/r/lowercase_table2.result: Update results mysql-test/t/lowercase_table2.test: Fix 'DROP TABLE' to not drop tables with the same name. sql/mysqld.cc: Move initialization of table_alias_charset to after we have decided what lower_case_table_names should be. --- mysql-test/r/lowercase_table2.result | 7 ++++++- mysql-test/t/lowercase_table2.test | 10 +++++++++- sql/mysqld.cc | 8 +++++--- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/mysql-test/r/lowercase_table2.result b/mysql-test/r/lowercase_table2.result index 1015990df9..db833bcd97 100644 --- a/mysql-test/r/lowercase_table2.result +++ b/mysql-test/r/lowercase_table2.result @@ -1,4 +1,4 @@ -DROP TABLE IF EXISTS t1,t2,T1,T2,t3,T3; +DROP TABLE IF EXISTS t1,t2,t3; DROP DATABASE IF EXISTS `TEST_$1`; DROP DATABASE IF EXISTS `test_$1`; CREATE TABLE T1 (a int); @@ -159,3 +159,8 @@ 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; diff --git a/mysql-test/t/lowercase_table2.test b/mysql-test/t/lowercase_table2.test index eff5f2a99e..51c6f6b5ac 100644 --- a/mysql-test/t/lowercase_table2.test +++ b/mysql-test/t/lowercase_table2.test @@ -10,7 +10,7 @@ show variables like "lower_case_table_names"; enable_query_log; --disable_warnings -DROP TABLE IF EXISTS t1,t2,T1,T2,t3,T3; +DROP TABLE IF EXISTS t1,t2,t3; DROP DATABASE IF EXISTS `TEST_$1`; DROP DATABASE IF EXISTS `test_$1`; --enable_warnings @@ -128,3 +128,11 @@ 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; diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 44b91fd353..67a80c4ca2 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -2988,6 +2988,11 @@ You should consider changing lower_case_table_names to 1 or 2", lower_case_table_names= 0; } + /* Reset table_alias_charset, now that lower_case_table_names is set. */ + table_alias_charset= (lower_case_table_names ? + files_charset_info : + &my_charset_bin); + select_thread=pthread_self(); select_thread_in_use=1; init_ssl(); @@ -6509,9 +6514,6 @@ static void get_options(int argc,char **argv) /* Set global variables based on startup options */ myisam_block_size=(uint) 1 << my_bit_log2(opt_myisam_block_size); - table_alias_charset= (lower_case_table_names ? - files_charset_info : - &my_charset_bin); if (opt_short_log_format) opt_specialflag|= SPECIAL_SHORT_LOG_FORMAT; -- 2.30.9