From 9023009ae38ed43e596318b809c2bf8bb11568f5 Mon Sep 17 00:00:00 2001 From: "bar@bar.mysql.r18.ru" <> Date: Wed, 8 Oct 2003 10:18:38 +0500 Subject: query_cache.result, query_cache.test: Character set variables test --- mysql-test/r/query_cache.result | 47 +++++++++++++++++++++++++++++++++++++++++ mysql-test/t/query_cache.test | 47 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) (limited to 'mysql-test') 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; -- cgit v1.2.1