#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#37719 | Mattias Jonsson | 3 Oct |