Current Path : /usr/opt/mysql57/mysql-test/suite/query_rewrite_plugins/r/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //usr/opt/mysql57/mysql-test/suite/query_rewrite_plugins/r/character_set.result |
# # Tests that the character set setting is properly picked up by the # session that reads the rules table. # Warnings: Warning 1681 'RESET QUERY CACHE' is deprecated and will be removed in a future release. Warnings: Warning 1681 'RESET QUERY CACHE' is deprecated and will be removed in a future release. # Query rewrite plugin was installed. # Let's be clear on what the global and session values are # for this variable. SHOW VARIABLES LIKE 'character_set_client'; Variable_name Value character_set_client latin1 SHOW SESSION VARIABLES LIKE 'character_set_client'; Variable_name Value character_set_client latin1 SHOW GLOBAL VARIABLES LIKE 'character_set_client'; Variable_name Value character_set_client latin1 DELETE FROM query_rewrite.rewrite_rules; INSERT INTO query_rewrite.rewrite_rules ( pattern, replacement ) VALUES ( 'SELECT * FROM mydb.mytable WHERE mycol = ?', 'select "rule1"' ); CALL query_rewrite.flush_rewrite_rules(); Warnings: Warning 1681 'RESET QUERY CACHE' is deprecated and will be removed in a future release. CREATE DATABASE mydb; CREATE TABLE mydb.mytable ( mycol char(3), mycol2 CHAR(100) ); INSERT INTO mydb.mytable VALUES ( 'xxx', 'Not supposed to be seeing this.' ); SELECT * FROM mydb.mytable WHERE mycol = 'xxx'; rule1 rule1 Warnings: Note 1105 Query 'SELECT * FROM mydb.mytable WHERE mycol = 'xxx'' rewritten to 'select "rule1"' by a query rewrite plugin DROP DATABASE mydb; # We now set the global value of the variable, this should not affect # the plugin. It should copy the session value from our session. SET @@global.character_set_client = utf8; SELECT * FROM mydb.mytable WHERE mycol = 'xxx'; rule1 rule1 Warnings: Note 1105 Query 'SELECT * FROM mydb.mytable WHERE mycol = 'xxx'' rewritten to 'select "rule1"' by a query rewrite plugin # Regenerating the digests should still work. CALL query_rewrite.flush_rewrite_rules(); SELECT * FROM mydb.mytable WHERE mycol = 'xxx'; rule1 rule1 Warnings: Note 1105 Query 'SELECT * FROM mydb.mytable WHERE mycol = 'xxx'' rewritten to 'select "rule1"' by a query rewrite plugin # We now repeat the above test with a character set where the digests # are known to differ. If we were lucky the last time, it will show now. # The global setting should still be ignored. SET @@global.character_set_client = latin1; SELECT * FROM mydb.mytable WHERE mycol = 'xxx'; rule1 rule1 Warnings: Note 1105 Query 'SELECT * FROM mydb.mytable WHERE mycol = 'xxx'' rewritten to 'select "rule1"' by a query rewrite plugin # Regenerating the digests should still work. CALL query_rewrite.flush_rewrite_rules(); SELECT * FROM mydb.mytable WHERE mycol = 'xxx'; rule1 rule1 Warnings: Note 1105 Query 'SELECT * FROM mydb.mytable WHERE mycol = 'xxx'' rewritten to 'select "rule1"' by a query rewrite plugin SET @@global.character_set_client = DEFAULT; # # This is perhaps an unwanted result, but the rules table-reading # session can't access our session's setting. # SET @@session.character_set_client = utf8; DELETE FROM query_rewrite.rewrite_rules; INSERT INTO query_rewrite.rewrite_rules ( pattern, replacement ) VALUES ( 'SELECT * FROM mydb.mytable WHERE mycol = ?', 'select "rule1"' ); CALL query_rewrite.flush_rewrite_rules(); CREATE DATABASE mydb; CREATE TABLE mydb.mytable ( mycol char(3), mycol2 CHAR(100) ); INSERT INTO mydb.mytable VALUES ( 'xxx', 'Not supposed to be seeing this.' ); SELECT * FROM mydb.mytable WHERE mycol = 'xxx'; rule1 rule1 Warnings: Note 1105 Query 'SELECT * FROM mydb.mytable WHERE mycol = 'xxx'' rewritten to 'select "rule1"' by a query rewrite plugin DROP DATABASE mydb; SET @@session.character_set_client = DEFAULT; Warnings: Warning 1620 Plugin is busy and will be uninstalled on shutdown # Query rewrite plugin was queued for uninstalling.