Skip to content

Commit

Permalink
Adding tests for handling 0x5C as the second byte in a multi-byte seq…
Browse files Browse the repository at this point in the history
…uence,

and as a escape character when
SET NAMES xxx, character_set_connection=binary;
for cp932,big5,gbk,sjis
  • Loading branch information
Alexander Barkov committed Sep 23, 2014
1 parent 504c6cc commit a3bd38d
Show file tree
Hide file tree
Showing 5 changed files with 97 additions and 0 deletions.
17 changes: 17 additions & 0 deletions mysql-test/include/ctype_E05C.inc
Expand Up @@ -90,5 +90,22 @@ INSERT INTO t1 VALUES ('
SELECT HEX(a) FROM t1;
DROP TABLE t1;
#
# Checking the other way around:
# 0x5C in 0xE05C is treated as the second byte
# when character_set_client=big5,cp932,gbk,sjis
# and character_set_connection=binary
#
SET character_set_client=@@character_set_connection, character_set_results=@@character_set_connection;
SET character_set_connection=binary;
SELECT @@character_set_client, @@character_set_connection, @@character_set_results;
SELECT HEX('à\['), HEX('\à\[');
CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0;
SHOW CREATE TABLE t1;
INSERT INTO t1 VALUES ('à\['),('\à\[');
SELECT HEX(a) FROM t1;
DROP TABLE t1;
--echo # Start of ctype_E05C.inc
20 changes: 20 additions & 0 deletions mysql-test/r/ctype_big5.result
Expand Up @@ -4548,6 +4548,26 @@ HEX(a)
E05B
E05B
DROP TABLE t1;
SET character_set_client=@@character_set_connection, character_set_results=@@character_set_connection;
SET character_set_connection=binary;
SELECT @@character_set_client, @@character_set_connection, @@character_set_results;
@@character_set_client @@character_set_connection @@character_set_results
big5 binary big5
SELECT HEX('�\['), HEX('\�\[');
HEX('�\[') HEX('\�\[')
E05C5B E05B
CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` varbinary(10) NOT NULL DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
INSERT INTO t1 VALUES ('�\['),('\�\[');
SELECT HEX(a) FROM t1;
HEX(a)
E05C5B
E05B
DROP TABLE t1;
# Start of ctype_E05C.inc
SET NAMES big5;
CREATE TABLE t1 (a ENUM('�@') CHARACTER SET big5);
Expand Down
20 changes: 20 additions & 0 deletions mysql-test/r/ctype_cp932_binlog_stm.result
Expand Up @@ -20237,6 +20237,26 @@ HEX(a)
E05B
E05B
DROP TABLE t1;
SET character_set_client=@@character_set_connection, character_set_results=@@character_set_connection;
SET character_set_connection=binary;
SELECT @@character_set_client, @@character_set_connection, @@character_set_results;
@@character_set_client @@character_set_connection @@character_set_results
cp932 binary cp932
SELECT HEX('�\['), HEX('\�\[');
HEX('�\[') HEX('\�\[')
E05C5B E05B
CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` varbinary(10) NOT NULL DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
INSERT INTO t1 VALUES ('�\['),('\�\[');
SELECT HEX(a) FROM t1;
HEX(a)
E05C5B
E05B
DROP TABLE t1;
# Start of ctype_E05C.inc
#
# End of 10.0 tests
Expand Down
20 changes: 20 additions & 0 deletions mysql-test/r/ctype_gbk.result
Expand Up @@ -4922,6 +4922,26 @@ HEX(a)
E05B
E05B
DROP TABLE t1;
SET character_set_client=@@character_set_connection, character_set_results=@@character_set_connection;
SET character_set_connection=binary;
SELECT @@character_set_client, @@character_set_connection, @@character_set_results;
@@character_set_client @@character_set_connection @@character_set_results
gbk binary gbk
SELECT HEX('�\['), HEX('\�\[');
HEX('�\[') HEX('\�\[')
E05C5B E05B
CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` varbinary(10) NOT NULL DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
INSERT INTO t1 VALUES ('�\['),('\�\[');
SELECT HEX(a) FROM t1;
HEX(a)
E05C5B
E05B
DROP TABLE t1;
# Start of ctype_E05C.inc
#
# End of 10.0 tests
Expand Down
20 changes: 20 additions & 0 deletions mysql-test/r/ctype_sjis.result
Expand Up @@ -18485,6 +18485,26 @@ HEX(a)
E05B
E05B
DROP TABLE t1;
SET character_set_client=@@character_set_connection, character_set_results=@@character_set_connection;
SET character_set_connection=binary;
SELECT @@character_set_client, @@character_set_connection, @@character_set_results;
@@character_set_client @@character_set_connection @@character_set_results
sjis binary sjis
SELECT HEX('�\['), HEX('\�\[');
HEX('�\[') HEX('�_�\[')
E05C5B E05B
CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0;
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` varbinary(10) NOT NULL DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
INSERT INTO t1 VALUES ('�\['),('\�\[');
SELECT HEX(a) FROM t1;
HEX(a)
E05C5B
E05B
DROP TABLE t1;
# Start of ctype_E05C.inc
#
# End of 10.0 tests
Expand Down

0 comments on commit a3bd38d

Please sign in to comment.