From: Date: October 3 2008 7:25pm Subject: bzr commit into mysql-5.1 branch (mattias.jonsson:2689) Bug#37719 List-Archive: http://lists.mysql.com/commits/55281 X-Bug: 37719 Message-Id: <20081003172514.DA8EB13CB1A2@witty.localhost> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7BIT #At file:///Users/mattiasj/clones/bzrroot/b37719-51-5129rc/ 2689 Mattias Jonsson 2008-10-03 Bug#37719: Crash if rename Archive table to same name with different case and then select Problem was that the archive share was using a case insensitive charset when comparing table names Solution was to use a case sensitive char set when the table names are case sensitive 12345678901234567890123456789012345678901234567890123456789012345678901234567890 modified: mysql-test/suite/parts/r/partition_mgm_lc0_archive.result storage/archive/ha_archive.cc per-file messages: mysql-test/suite/parts/r/partition_mgm_lc0_archive.result Bug#37719: Crash if rename Archive table to same name with different case and then select Updated to correct result. storage/archive/ha_archive.cc Bug#37719: Crash if rename Archive table to same name with different case and then select system_charset_info is case insensitive, table_alias_charset depends on the filesystem/lower_case_table_names variable. since there could be two tables that used the same share, unpredicted things could happen. === modified file 'mysql-test/suite/parts/r/partition_mgm_lc0_archive.result' --- a/mysql-test/suite/parts/r/partition_mgm_lc0_archive.result 2008-07-10 23:14:13 +0000 +++ b/mysql-test/suite/parts/r/partition_mgm_lc0_archive.result 2008-10-03 17:24:59 +0000 @@ -157,23 +157,11 @@ tablea SELECT * FROM tablea; a 1 -1 -10 10 -11 -12 -2 2 -3 -4 -5 -6 7 -7 -8 8 9 -9 SHOW CREATE TABLE tablea; Table Create Table tablea CREATE TABLE `tablea` ( @@ -185,7 +173,6 @@ ALTER TABLE TableA REMOVE PARTITIONING; SELECT * FROM TableA; a 1 -1 10 11 12 @@ -195,11 +182,8 @@ a 5 6 7 -7 -8 8 9 -9 SHOW CREATE TABLE TableA; Table Create Table TableA CREATE TABLE `TableA` ( @@ -372,23 +356,11 @@ tablea SELECT * FROM tablea; a 1 -1 10 -10 -11 -12 -2 2 -3 -4 -5 -6 7 -7 -8 8 9 -9 SHOW CREATE TABLE tablea; Table Create Table tablea CREATE TABLE `tablea` ( @@ -400,21 +372,16 @@ ALTER TABLE TableA REMOVE PARTITIONING; SELECT * FROM TableA; a 1 -1 -10 10 11 12 2 -2 3 4 5 6 7 8 -8 -9 9 SHOW CREATE TABLE TableA; Table Create Table @@ -580,23 +547,11 @@ tablea SELECT * FROM tablea; a 1 -1 -10 10 -11 -12 -2 2 -3 -4 -5 -6 7 -7 -8 8 9 -9 SHOW CREATE TABLE tablea; Table Create Table tablea CREATE TABLE `tablea` ( @@ -608,23 +563,17 @@ ALTER TABLE TableA REMOVE PARTITIONING; SELECT * FROM TableA; a 1 -1 -10 10 11 12 2 -2 3 4 5 6 7 -7 -8 8 9 -9 SHOW CREATE TABLE TableA; Table Create Table TableA CREATE TABLE `TableA` ( @@ -783,19 +732,10 @@ tablea SELECT * FROM tablea; a 1 -1 10 -12 2 -3 -4 -5 -6 -7 7 8 -8 -9 9 SHOW CREATE TABLE tablea; Table Create Table @@ -808,19 +748,13 @@ ALTER TABLE TableA REMOVE PARTITIONING; SELECT * FROM TableA; a 1 -1 -10 12 -2 3 4 5 6 7 -7 8 -8 -9 9 SHOW CREATE TABLE TableA; Table Create Table === modified file 'storage/archive/ha_archive.cc' --- a/storage/archive/ha_archive.cc 2007-12-20 21:11:37 +0000 +++ b/storage/archive/ha_archive.cc 2008-10-03 17:24:59 +0000 @@ -171,7 +171,7 @@ int archive_db_init(void *p) if (pthread_mutex_init(&archive_mutex, MY_MUTEX_INIT_FAST)) goto error; - if (hash_init(&archive_open_tables, system_charset_info, 32, 0, 0, + if (hash_init(&archive_open_tables, table_alias_charset, 32, 0, 0, (hash_get_key) archive_get_key, 0, 0)) { VOID(pthread_mutex_destroy(&archive_mutex));