1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

tabe & query hashes made case insensitive (BUG#933)

mysql-test/r/query_cache.result:
  fixed charecter sets
  new case sensetive test
mysql-test/t/query_cache.test:
  fixed charecter sets
  new case sensetive test
sql/sql_cache.cc:
  query & table comparision should be case insensitive
This commit is contained in:
unknown
2003-07-28 18:28:44 +03:00
parent 329e063774
commit 37ddcebad2
3 changed files with 36 additions and 16 deletions

View File

@ -374,22 +374,23 @@ drop database mysqltest;
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 0
create table t1 (a char(1) not null);
insert into t1 values("<22>");
create table t1 (a char(1) not null collate koi8r_general_ci);
insert into t1 values(_koi8r"<22>");
set CHARACTER SET koi8r;
select * from t1;
a
<EFBFBD>
set CHARACTER SET cp1251_koi8;
select * from t1;
a
<EFBFBD>
<EFBFBD>
set CHARACTER SET DEFAULT;
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 1
Qcache_queries_in_cache 2
show status like "Qcache_hits";
Variable_name Value
Qcache_hits 5
Qcache_hits 4
drop table t1;
create database if not exists mysqltest;
create table mysqltest.t1 (i int not null);
@ -415,7 +416,7 @@ Variable_name Value
Qcache_queries_in_cache 2
show status like "Qcache_hits";
Variable_name Value
Qcache_hits 7
Qcache_hits 6
drop database mysqltest;
drop table t1;
create table t1 (i int not null);
@ -429,7 +430,7 @@ FOUND_ROWS()
4
show status like "Qcache_hits";
Variable_name Value
Qcache_hits 7
Qcache_hits 6
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 1
@ -441,7 +442,7 @@ FOUND_ROWS()
1
show status like "Qcache_hits";
Variable_name Value
Qcache_hits 7
Qcache_hits 6
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 2
@ -454,7 +455,7 @@ FOUND_ROWS()
4
show status like "Qcache_hits";
Variable_name Value
Qcache_hits 8
Qcache_hits 7
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 2
@ -466,7 +467,7 @@ FOUND_ROWS()
1
show status like "Qcache_hits";
Variable_name Value
Qcache_hits 9
Qcache_hits 8
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 2
@ -535,7 +536,7 @@ a
3
show status like "Qcache_hits";
Variable_name Value
Qcache_hits 12
Qcache_hits 11
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 2
@ -552,7 +553,7 @@ a
3
show status like "Qcache_hits";
Variable_name Value
Qcache_hits 13
Qcache_hits 12
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 2
@ -561,6 +562,15 @@ set GLOBAL query_cache_min_res_unit=default;
show global variables like "query_cache_min_res_unit";
Variable_name Value
query_cache_min_res_unit 4096
create table t1 (a int not null);
insert into t1 values (1);
select "aaa" from t1;
aaa
aaa
select "AAA" from t1;
AAA
AAA
drop table t1;
create table t1 (a int);
set GLOBAL query_cache_size=1000;
show global variables like "query_cache_size";

View File

@ -260,8 +260,9 @@ show status like "Qcache_queries_in_cache";
#
# Charset convertion (cp1251_koi8 always present)
#
create table t1 (a char(1) not null);
insert into t1 values("<22>");
create table t1 (a char(1) not null collate koi8r_general_ci);
insert into t1 values(_koi8r"<22>");
set CHARACTER SET koi8r;
select * from t1;
set CHARACTER SET cp1251_koi8;
select * from t1;
@ -368,6 +369,15 @@ drop table t2;
set GLOBAL query_cache_min_res_unit=default;
show global variables like "query_cache_min_res_unit";
#
# Case sensitive test
#
create table t1 (a int not null);
insert into t1 values (1);
select "aaa" from t1;
select "AAA" from t1;
drop table t1;
#
# Test of query cache resizing
#

View File

@ -1422,10 +1422,10 @@ ulong Query_cache::init_cache()
DUMP(this);
VOID(hash_init(&queries,system_charset_info,def_query_hash_size, 0, 0,
VOID(hash_init(&queries, &my_charset_bin, def_query_hash_size, 0, 0,
query_cache_query_get_key, 0, 0));
#ifndef FN_NO_CASE_SENCE
VOID(hash_init(&tables,system_charset_info,def_table_hash_size, 0, 0,
VOID(hash_init(&tables, &my_charset_bin, def_table_hash_size, 0, 0,
query_cache_table_get_key, 0, 0));
#else
// windows, OS/2 or other case insensitive file names work around