Commit f6501fd3 authored by unknown's avatar unknown

query_cache.result, query_cache.test:

  Character set variables test


mysql-test/t/query_cache.test:
  Character set variables test
mysql-test/r/query_cache.result:
  Character set variables test
parent 6577121c
...@@ -709,3 +709,50 @@ Variable_name Value ...@@ -709,3 +709,50 @@ Variable_name Value
Qcache_queries_in_cache 2 Qcache_queries_in_cache 2
SET OPTION SQL_SELECT_LIMIT=DEFAULT; SET OPTION SQL_SELECT_LIMIT=DEFAULT;
drop table t1; drop table t1;
SET NAMES koi8r;
CREATE TABLE t1 (a char(1) character set koi8r);
INSERT INTO t1 VALUES (_koi8r''),(_koi8r'');
SELECT a,'',''='' FROM t1;
a ''=''
1
1
show status like "Qcache_hits";
Variable_name Value
Qcache_hits 12
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 1
set collation_connection=koi8r_bin;
SELECT a,'',''='' FROM t1;
a ''=''
0
0
show status like "Qcache_hits";
Variable_name Value
Qcache_hits 12
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 2
set character_set_client=cp1251;
SELECT a,'',''='' FROM t1;
a ''=''
0
0
show status like "Qcache_hits";
Variable_name Value
Qcache_hits 12
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 3
set character_set_results=cp1251;
SELECT a,'',''='' FROM t1;
a ''=''
0
0
show status like "Qcache_hits";
Variable_name Value
Qcache_hits 12
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 4
DROP TABLE t1;
...@@ -487,3 +487,50 @@ select * from t1; ...@@ -487,3 +487,50 @@ select * from t1;
show status like "Qcache_queries_in_cache"; show status like "Qcache_queries_in_cache";
SET OPTION SQL_SELECT_LIMIT=DEFAULT; SET OPTION SQL_SELECT_LIMIT=DEFAULT;
drop table t1; drop table t1;
#
# Test character set related variables:
# character_set_result
# character_set_client
# charactet_set_connection/collation_connection
# If at least one of the above variables has changed,
# the cached query can't be reused. In the below test
# absolutely the same query is used several times,
# SELECT should fetch different results for every instance.
# No hits should be produced.
# New cache entry should appear for every SELECT.
#
SET NAMES koi8r;
CREATE TABLE t1 (a char(1) character set koi8r);
INSERT INTO t1 VALUES (_koi8r''),(_koi8r'');
#
# Run select
#
SELECT a,'',''='' FROM t1;
show status like "Qcache_hits";
show status like "Qcache_queries_in_cache";
#
# Change collation_connection and run the same query again
#
set collation_connection=koi8r_bin;
SELECT a,'',''='' FROM t1;
show status like "Qcache_hits";
show status like "Qcache_queries_in_cache";
#
# Now change character_set_client and run the same query again
#
set character_set_client=cp1251;
SELECT a,'',''='' FROM t1;
show status like "Qcache_hits";
show status like "Qcache_queries_in_cache";
#
# And finally change character_set_results and run the same query again
#
set character_set_results=cp1251;
SELECT a,'',''='' FROM t1;
show status like "Qcache_hits";
show status like "Qcache_queries_in_cache";
#
# Keep things tidy
#
DROP TABLE t1;
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment