From: Georgi Kodinov Date: July 5 2010 10:05am Subject: bzr commit into mysql-trunk branch (Georgi.Kodinov:3099) List-Archive: http://lists.mysql.com/commits/112871 Message-Id: <201007051005.o65A5diB006036@magare.gmz> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============5618935643612949734==" --===============5618935643612949734== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/kgeorge/mysql/work/B53095-trunk-merge/ based on revid:li-bing.song@stripped 3099 Georgi Kodinov 2010-07-05 [merge] merge modified: mysql-test/r/lowercase_view.result mysql-test/t/lowercase_view.test sql/sql_show.cc === modified file 'mysql-test/r/lowercase_view.result' --- a/mysql-test/r/lowercase_view.result 2007-11-13 17:32:12 +0000 +++ b/mysql-test/r/lowercase_view.result 2010-06-25 12:59:44 +0000 @@ -148,3 +148,20 @@ a DROP VIEW v1; DROP TABLE t1; End of 5.0 tests. +# +# Bug #53095: SELECT column_name FROM INFORMATION_SCHEMA.STATISTICS +# returns nothing +# +CREATE TABLE `ttt` ( +`f1` char(3) NOT NULL, +PRIMARY KEY (`f1`) +) ENGINE=myisam DEFAULT CHARSET=latin1; +SELECT count(COLUMN_NAME) FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_NAME = +'TTT'; +count(COLUMN_NAME) +1 +SELECT count(*) FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_NAME = 'TTT'; +count(*) +1 +DROP TABLE `ttt`; +End of 5.0 tests. === modified file 'mysql-test/t/lowercase_view.test' --- a/mysql-test/t/lowercase_view.test 2007-11-13 09:39:52 +0000 +++ b/mysql-test/t/lowercase_view.test 2010-06-25 12:59:44 +0000 @@ -160,4 +160,26 @@ SELECT * FROM v1; DROP VIEW v1; DROP TABLE t1; + +--echo End of 5.0 tests. + + +--echo # +--echo # Bug #53095: SELECT column_name FROM INFORMATION_SCHEMA.STATISTICS +--echo # returns nothing +--echo # + +CREATE TABLE `ttt` ( + `f1` char(3) NOT NULL, + PRIMARY KEY (`f1`) +) ENGINE=myisam DEFAULT CHARSET=latin1; + +SELECT count(COLUMN_NAME) FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_NAME = +'TTT'; +SELECT count(*) FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_NAME = 'TTT'; + +DROP TABLE `ttt`; + + --echo End of 5.0 tests. + === modified file 'sql/sql_show.cc' --- a/sql/sql_show.cc 2010-06-25 08:08:54 +0000 +++ b/sql/sql_show.cc 2010-07-05 10:05:04 +0000 @@ -2626,36 +2626,54 @@ bool get_lookup_field_values(THD *thd, C { LEX *lex= thd->lex; const char *wild= lex->wild ? lex->wild->ptr() : NullS; + bool rc= 0; + bzero((char*) lookup_field_values, sizeof(LOOKUP_FIELD_VALUES)); switch (lex->sql_command) { case SQLCOM_SHOW_DATABASES: if (wild) { - lookup_field_values->db_value.str= (char*) wild; - lookup_field_values->db_value.length= strlen(wild); + thd->make_lex_string(&lookup_field_values->db_value, + wild, strlen(wild), 0); lookup_field_values->wild_db_value= 1; } - return 0; + break; case SQLCOM_SHOW_TABLES: case SQLCOM_SHOW_TABLE_STATUS: case SQLCOM_SHOW_TRIGGERS: case SQLCOM_SHOW_EVENTS: - lookup_field_values->db_value.str= lex->select_lex.db; - lookup_field_values->db_value.length=strlen(lex->select_lex.db); + thd->make_lex_string(&lookup_field_values->db_value, + lex->select_lex.db, strlen(lex->select_lex.db), 0); if (wild) { - lookup_field_values->table_value.str= (char*)wild; - lookup_field_values->table_value.length= strlen(wild); + thd->make_lex_string(&lookup_field_values->table_value, + wild, strlen(wild), 0); lookup_field_values->wild_table_value= 1; } - return 0; + break; default: /* The "default" is for queries over I_S. All previous cases handle SHOW commands. */ - return calc_lookup_values_from_cond(thd, cond, tables, lookup_field_values); + rc= calc_lookup_values_from_cond(thd, cond, tables, lookup_field_values); + break; } + + if (lower_case_table_names && !rc) + { + /* + We can safely do in-place upgrades here since all of the above cases + are allocating a new memory buffer for these strings. + */ + if (lookup_field_values->db_value.str && lookup_field_values->db_value.str[0]) + my_casedn_str(system_charset_info, lookup_field_values->db_value.str); + if (lookup_field_values->table_value.str && + lookup_field_values->table_value.str[0]) + my_casedn_str(system_charset_info, lookup_field_values->table_value.str); + } + + return rc; } @@ -3441,6 +3459,7 @@ int get_all_tables(THD *thd, TABLE_LIST error= 0; goto err; } + DBUG_PRINT("INDEX VALUES",("db_name='%s', table_name='%s'", STR_OR_NIL(lookup_field_vals.db_value.str), STR_OR_NIL(lookup_field_vals.table_value.str))); --===============5618935643612949734== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/georgi.kodinov@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: georgi.kodinov@stripped\ # u6muvlymmidbla7o # target_branch: file:///home/kgeorge/mysql/work/B53095-trunk-merge/ # testament_sha1: f3447f9cfde04bc195cfca02555f47455f752214 # timestamp: 2010-07-05 13:05:39 +0300 # source_branch: file:///home/kgeorge/mysql/work/B53095-5.1-bugteam/ # base_revision_id: li-bing.song@stripped\ # 6547w3nr77io8qpv # # Begin bundle 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 uSKcKEhZwgdaAA== --===============5618935643612949734==--