Commit c23ef5e1 authored by unknown's avatar unknown

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.
parent 777899a6
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`;
DROP DATABASE IF EXISTS `test_$1`; DROP DATABASE IF EXISTS `test_$1`;
CREATE TABLE T1 (a int); CREATE TABLE T1 (a int);
...@@ -159,3 +159,8 @@ select * from myUC; ...@@ -159,3 +159,8 @@ select * from myUC;
i i
use test; use test;
drop database mysqltest_LC2; 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;
...@@ -10,7 +10,7 @@ show variables like "lower_case_table_names"; ...@@ -10,7 +10,7 @@ show variables like "lower_case_table_names";
enable_query_log; enable_query_log;
--disable_warnings --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`;
DROP DATABASE IF EXISTS `test_$1`; DROP DATABASE IF EXISTS `test_$1`;
--enable_warnings --enable_warnings
...@@ -128,3 +128,11 @@ create table myUC (i int); ...@@ -128,3 +128,11 @@ create table myUC (i int);
select * from myUC; select * from myUC;
use test; use test;
drop database mysqltest_LC2; 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;
...@@ -2988,6 +2988,11 @@ You should consider changing lower_case_table_names to 1 or 2", ...@@ -2988,6 +2988,11 @@ You should consider changing lower_case_table_names to 1 or 2",
lower_case_table_names= 0; 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=pthread_self();
select_thread_in_use=1; select_thread_in_use=1;
init_ssl(); init_ssl();
...@@ -6509,9 +6514,6 @@ static void get_options(int argc,char **argv) ...@@ -6509,9 +6514,6 @@ static void get_options(int argc,char **argv)
/* Set global variables based on startup options */ /* Set global variables based on startup options */
myisam_block_size=(uint) 1 << my_bit_log2(opt_myisam_block_size); 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) if (opt_short_log_format)
opt_specialflag|= SPECIAL_SHORT_LOG_FORMAT; opt_specialflag|= SPECIAL_SHORT_LOG_FORMAT;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment