From f6501fd3f5929393fef13babce545c39ee849afb Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 8 Oct 2003 10:18:38 +0500 Subject: [PATCH] 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 --- mysql-test/r/query_cache.result | 47 +++++++++++++++++++++++++++++++++ mysql-test/t/query_cache.test | 47 +++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) diff --git a/mysql-test/r/query_cache.result b/mysql-test/r/query_cache.result index d1ef5ab828e..a6aca2f983c 100644 --- a/mysql-test/r/query_cache.result +++ b/mysql-test/r/query_cache.result @@ -709,3 +709,50 @@ Variable_name Value Qcache_queries_in_cache 2 SET OPTION SQL_SELECT_LIMIT=DEFAULT; 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; diff --git a/mysql-test/t/query_cache.test b/mysql-test/t/query_cache.test index dcdf70ee612..ed4c5c91c4d 100644 --- a/mysql-test/t/query_cache.test +++ b/mysql-test/t/query_cache.test @@ -487,3 +487,50 @@ select * from t1; show status like "Qcache_queries_in_cache"; SET OPTION SQL_SELECT_LIMIT=DEFAULT; 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;