mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
- Adding big5, cp932, gbk, sjis tests covering characters that can
have 0x5C as the second byte in a multi-byte character. - Adding big5 tests covering an unassigned character 0xC840 being stored into char/varchar/text/enum columns.
This commit is contained in:
94
mysql-test/include/ctype_E05C.inc
Normal file
94
mysql-test/include/ctype_E05C.inc
Normal file
@@ -0,0 +1,94 @@
|
||||
--echo # Start of ctype_E05C.inc
|
||||
|
||||
#
|
||||
# A shared test for character sets big5, cp932, gbk, sjis
|
||||
# They all can have 0x5C as the second byte in a multi-byte character.
|
||||
# 0xE05C is one of such characters.
|
||||
#
|
||||
|
||||
# Checking that the character 0xE05C correctly understands 5C as the second byte
|
||||
# rather than a stand-alone backslash, including the strings that also
|
||||
# have real backslash escapes and/or separator escapes.
|
||||
|
||||
SELECT HEX('<27>\'),HEX('<EFBFBD>\t');
|
||||
SELECT HEX('\\<5C>\'),HEX('\\<5C>\t'),HEX('\\<5C>\t\t');
|
||||
SELECT HEX('''<EFBFBD>\'),HEX('<EFBFBD>\''');
|
||||
SELECT HEX('\\''<EFBFBD>\'),HEX('<EFBFBD>\''\\');
|
||||
|
||||
SELECT HEX(BINARY('<EFBFBD>\')),HEX(BINARY('<EFBFBD>\t'));
|
||||
SELECT HEX(BINARY('\\<5C>\')),HEX(BINARY('\\<5C>\t')),HEX(BINARY('\\<5C>\t\t'));
|
||||
SELECT HEX(BINARY('''<EFBFBD>\')),HEX(BINARY('<EFBFBD>\'''));
|
||||
SELECT HEX(BINARY('\\''<EFBFBD>\')),HEX(BINARY('<EFBFBD>\''\\'));
|
||||
|
||||
SELECT HEX(_BINARY'<EFBFBD>\'),HEX(_BINARY'<EFBFBD>\t');
|
||||
SELECT HEX(_BINARY'\\<5C>\'),HEX(_BINARY'\\<5C>\t'),HEX(_BINARY'\\<5C>\t\t');
|
||||
SELECT HEX(_BINARY'''<EFBFBD>\'),HEX(_BINARY'<EFBFBD>\''');
|
||||
SELECT HEX(_BINARY'\\''<EFBFBD>\'),HEX(_BINARY'<EFBFBD>\''\\');
|
||||
|
||||
CREATE TABLE t1 AS SELECT REPEAT(' ',10) AS a LIMIT 0;
|
||||
SHOW CREATE TABLE t1;
|
||||
INSERT INTO t1 VALUES ('<EFBFBD>\'),('<EFBFBD>\t');
|
||||
INSERT INTO t1 VALUES ('\\<5C>\'),('\\<5C>\t'),('\\<5C>\t\t');
|
||||
INSERT INTO t1 VALUES ('''<EFBFBD>\'),('<EFBFBD>\''');
|
||||
INSERT INTO t1 VALUES ('\\''<EFBFBD>\'),('<EFBFBD>\''\\');
|
||||
SELECT a, HEX(a) FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a BLOB);
|
||||
INSERT INTO t1 VALUES ('<EFBFBD>\'),('<EFBFBD>\t');
|
||||
INSERT INTO t1 VALUES ('\\<5C>\'),('\\<5C>\t'),('\\<5C>\t\t');
|
||||
INSERT INTO t1 VALUES ('''<EFBFBD>\'),('<EFBFBD>\''');
|
||||
INSERT INTO t1 VALUES ('\\''<EFBFBD>\'),('<EFBFBD>\''\\');
|
||||
SELECT a, HEX(a) FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0;
|
||||
SHOW CREATE TABLE t1;
|
||||
INSERT INTO t1 VALUES (BINARY('<EFBFBD>\')),(BINARY('<EFBFBD>\t'));
|
||||
INSERT INTO t1 VALUES (BINARY('\\<5C>\')),(BINARY('\\<5C>\t')),(BINARY('\\<5C>\t\t'));
|
||||
INSERT INTO t1 VALUES (BINARY('''<EFBFBD>\')),(BINARY('<EFBFBD>\'''));
|
||||
INSERT INTO t1 VALUES (BINARY('\\''<EFBFBD>\')),(BINARY('<EFBFBD>\''\\'));
|
||||
SELECT a, HEX(a) FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a BLOB);
|
||||
INSERT INTO t1 VALUES (BINARY('<EFBFBD>\')),(BINARY('<EFBFBD>\t'));
|
||||
INSERT INTO t1 VALUES (BINARY('\\<5C>\')),(BINARY('\\<5C>\t')),(BINARY('\\<5C>\t\t'));
|
||||
INSERT INTO t1 VALUES (BINARY('''<EFBFBD>\')),(BINARY('<EFBFBD>\'''));
|
||||
INSERT INTO t1 VALUES (BINARY('\\''<EFBFBD>\')),(BINARY('<EFBFBD>\''\\'));
|
||||
SELECT a, HEX(a) FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0;
|
||||
SHOW CREATE TABLE t1;
|
||||
INSERT INTO t1 VALUES (_BINARY'<EFBFBD>\'),(_BINARY'<EFBFBD>\t');
|
||||
INSERT INTO t1 VALUES (_BINARY'\\<5C>\'),(_BINARY'\\<5C>\t'),(_BINARY'\\<5C>\t\t');
|
||||
INSERT INTO t1 VALUES (_BINARY'''<EFBFBD>\'),(_BINARY'<EFBFBD>\''');
|
||||
INSERT INTO t1 VALUES (_BINARY'\\''<EFBFBD>\'),(_BINARY'<EFBFBD>\''\\');
|
||||
SELECT a, HEX(a) FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (a BLOB);
|
||||
INSERT INTO t1 VALUES (_BINARY'<EFBFBD>\'),(_BINARY'<EFBFBD>\t');
|
||||
INSERT INTO t1 VALUES (_BINARY'\\<5C>\'),(_BINARY'\\<5C>\t'),(_BINARY'\\<5C>\t\t');
|
||||
INSERT INTO t1 VALUES (_BINARY'''<EFBFBD>\'),(_BINARY'<EFBFBD>\''');
|
||||
INSERT INTO t1 VALUES (_BINARY'\\''<EFBFBD>\'),(_BINARY'<EFBFBD>\''\\');
|
||||
SELECT a, HEX(a) FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
# Checking that with character_set_client=binary 0x5C in 0xE05C
|
||||
# is treated as escape rather than the second byte of a multi-byte character,
|
||||
# even if character_set_connection is big5/cp932/gbk/sjis.
|
||||
# Note, the other 0x5C which is before 0xE05C is also treated as escape.
|
||||
#
|
||||
SET character_set_client=binary, character_set_results=binary;
|
||||
SELECT @@character_set_client, @@character_set_connection, @@character_set_results;
|
||||
SELECT HEX('<EFBFBD>\['), HEX('\<5C>\[');
|
||||
CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0;
|
||||
SHOW CREATE TABLE t1;
|
||||
INSERT INTO t1 VALUES ('<EFBFBD>\['),('\<5C>\[');
|
||||
SELECT HEX(a) FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo # Start of ctype_E05C.inc
|
||||
|
Reference in New Issue
Block a user