List:Commits« Previous MessageNext Message »
From:Mattias Jonsson Date:October 3 2008 6:08pm
Subject:bzr commit into mysql-5.1 branch (mattias.jonsson:2689) Bug#37719
View as plain text  
#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
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 18:08:40 +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 18:08:40 +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));

Thread
bzr commit into mysql-5.1 branch (mattias.jonsson:2689) Bug#37719Mattias Jonsson3 Oct