summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mnogosearch.org>2013-11-08 14:18:16 +0400
committerAlexander Barkov <bar@mnogosearch.org>2013-11-08 14:18:16 +0400
commita33bb001445d2576f15437d9392bc70736ab419a (patch)
tree878fd523c8bcdac7fdfe7af8800bc28c92969fe1 /mysql-test
parent5ce11d8b4ca2a57968656925a69ed8114d5374f6 (diff)
downloadmariadb-git-a33bb001445d2576f15437d9392bc70736ab419a.tar.gz
MDEV-4842 STR_TO_DATE does not work with UCS2/UTF16/UTF32
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/include/ctype_str_to_date.inc12
-rw-r--r--mysql-test/r/ctype_latin1.result19
-rw-r--r--mysql-test/r/ctype_sjis.result19
-rw-r--r--mysql-test/r/ctype_ucs.result19
-rw-r--r--mysql-test/r/ctype_utf8.result19
-rw-r--r--mysql-test/t/ctype_latin1.test1
-rw-r--r--mysql-test/t/ctype_sjis.test1
-rw-r--r--mysql-test/t/ctype_ucs.test1
-rw-r--r--mysql-test/t/ctype_utf8.test1
9 files changed, 92 insertions, 0 deletions
diff --git a/mysql-test/include/ctype_str_to_date.inc b/mysql-test/include/ctype_str_to_date.inc
new file mode 100644
index 00000000000..62adb05b094
--- /dev/null
+++ b/mysql-test/include/ctype_str_to_date.inc
@@ -0,0 +1,12 @@
+--echo #
+--echo # MDEV-4842 STR_TO_DATE does not work with UCS2/UTF16/UTF32
+--echo #
+
+SELECT @@character_set_connection, HEX(CAST(_utf8'÷' AS CHAR));
+SELECT STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR));
+CREATE TABLE t1 AS SELECT REPEAT(' ', 64) AS subject, REPEAT(' ',64) AS pattern LIMIT 0;
+SHOW COLUMNS FROM t1;
+INSERT INTO t1 VALUES (_utf8'2001÷01÷01',_utf8'%Y÷%m÷%d');
+SELECT HEX(subject),HEX(pattern),STR_TO_DATE(subject, pattern) FROM t1;
+DROP TABLE t1;
+
diff --git a/mysql-test/r/ctype_latin1.result b/mysql-test/r/ctype_latin1.result
index 66b2cbd8fc4..82b24fcc9ef 100644
--- a/mysql-test/r/ctype_latin1.result
+++ b/mysql-test/r/ctype_latin1.result
@@ -336,6 +336,25 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
c2h
ab_def
drop table t1;
+#
+# MDEV-4842 STR_TO_DATE does not work with UCS2/UTF16/UTF32
+#
+SELECT @@character_set_connection, HEX(CAST(_utf8'÷' AS CHAR));
+@@character_set_connection HEX(CAST(_utf8'÷' AS CHAR))
+latin1 F7
+SELECT STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR));
+STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR))
+2001-01-01
+CREATE TABLE t1 AS SELECT REPEAT(' ', 64) AS subject, REPEAT(' ',64) AS pattern LIMIT 0;
+SHOW COLUMNS FROM t1;
+Field Type Null Key Default Extra
+subject varchar(64) NO
+pattern varchar(64) NO
+INSERT INTO t1 VALUES (_utf8'2001÷01÷01',_utf8'%Y÷%m÷%d');
+SELECT HEX(subject),HEX(pattern),STR_TO_DATE(subject, pattern) FROM t1;
+HEX(subject) HEX(pattern) STR_TO_DATE(subject, pattern)
+32303031F73031F73031 2559F7256DF72564 2001-01-01 00:00:00
+DROP TABLE t1;
SET collation_connection='latin1_bin';
create table t1 select repeat('a',4000) a;
delete from t1;
diff --git a/mysql-test/r/ctype_sjis.result b/mysql-test/r/ctype_sjis.result
index 087813d742b..788fd59180e 100644
--- a/mysql-test/r/ctype_sjis.result
+++ b/mysql-test/r/ctype_sjis.result
@@ -138,6 +138,25 @@ a hex(b) c
3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
DROP TABLE t1;
+#
+# MDEV-4842 STR_TO_DATE does not work with UCS2/UTF16/UTF32
+#
+SELECT @@character_set_connection, HEX(CAST(_utf8'÷' AS CHAR));
+@@character_set_connection HEX(CAST(_utf8'÷' AS CHAR))
+sjis 8180
+SELECT STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR));
+STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR))
+2001-01-01
+CREATE TABLE t1 AS SELECT REPEAT(' ', 64) AS subject, REPEAT(' ',64) AS pattern LIMIT 0;
+SHOW COLUMNS FROM t1;
+Field Type Null Key Default Extra
+subject varchar(64) NO
+pattern varchar(64) NO
+INSERT INTO t1 VALUES (_utf8'2001÷01÷01',_utf8'%Y÷%m÷%d');
+SELECT HEX(subject),HEX(pattern),STR_TO_DATE(subject, pattern) FROM t1;
+HEX(subject) HEX(pattern) STR_TO_DATE(subject, pattern)
+323030318180303181803031 25598180256D81802564 2001-01-01 00:00:00
+DROP TABLE t1;
SET collation_connection='sjis_bin';
create table t1 select repeat('a',4000) a;
delete from t1;
diff --git a/mysql-test/r/ctype_ucs.result b/mysql-test/r/ctype_ucs.result
index c29074fb226..e6f40b622f0 100644
--- a/mysql-test/r/ctype_ucs.result
+++ b/mysql-test/r/ctype_ucs.result
@@ -804,6 +804,25 @@ a hex(b) c
3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
DROP TABLE t1;
+#
+# MDEV-4842 STR_TO_DATE does not work with UCS2/UTF16/UTF32
+#
+SELECT @@character_set_connection, HEX(CAST(_utf8'÷' AS CHAR));
+@@character_set_connection HEX(CAST(_utf8'÷' AS CHAR))
+ucs2 00F7
+SELECT STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR));
+STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR))
+2001-01-01
+CREATE TABLE t1 AS SELECT REPEAT(' ', 64) AS subject, REPEAT(' ',64) AS pattern LIMIT 0;
+SHOW COLUMNS FROM t1;
+Field Type Null Key Default Extra
+subject varchar(64) NO
+pattern varchar(64) NO
+INSERT INTO t1 VALUES (_utf8'2001÷01÷01',_utf8'%Y÷%m÷%d');
+SELECT HEX(subject),HEX(pattern),STR_TO_DATE(subject, pattern) FROM t1;
+HEX(subject) HEX(pattern) STR_TO_DATE(subject, pattern)
+003200300030003100F70030003100F700300031 0025005900F70025006D00F700250064 2001-01-01 00:00:00
+DROP TABLE t1;
SET NAMES latin1;
SET collation_connection='ucs2_bin';
create table t1 select repeat('a',4000) a;
diff --git a/mysql-test/r/ctype_utf8.result b/mysql-test/r/ctype_utf8.result
index e61d41bda83..d48ffc81c67 100644
--- a/mysql-test/r/ctype_utf8.result
+++ b/mysql-test/r/ctype_utf8.result
@@ -976,6 +976,25 @@ ss
u,ü
ue
drop table t1;
+#
+# MDEV-4842 STR_TO_DATE does not work with UCS2/UTF16/UTF32
+#
+SELECT @@character_set_connection, HEX(CAST(_utf8'÷' AS CHAR));
+@@character_set_connection HEX(CAST(_utf8'÷' AS CHAR))
+utf8 C3B7
+SELECT STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR));
+STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR))
+2001-01-01
+CREATE TABLE t1 AS SELECT REPEAT(' ', 64) AS subject, REPEAT(' ',64) AS pattern LIMIT 0;
+SHOW COLUMNS FROM t1;
+Field Type Null Key Default Extra
+subject varchar(64) NO
+pattern varchar(64) NO
+INSERT INTO t1 VALUES (_utf8'2001÷01÷01',_utf8'%Y÷%m÷%d');
+SELECT HEX(subject),HEX(pattern),STR_TO_DATE(subject, pattern) FROM t1;
+HEX(subject) HEX(pattern) STR_TO_DATE(subject, pattern)
+32303031C3B73031C3B73031 2559C3B7256DC3B72564 2001-01-01 00:00:00
+DROP TABLE t1;
SET collation_connection='utf8_bin';
create table t1 select repeat('a',4000) a;
delete from t1;
diff --git a/mysql-test/t/ctype_latin1.test b/mysql-test/t/ctype_latin1.test
index a7e6351161b..0c4447faf81 100644
--- a/mysql-test/t/ctype_latin1.test
+++ b/mysql-test/t/ctype_latin1.test
@@ -82,6 +82,7 @@ select 'a' regexp 'A' collate latin1_bin;
SET collation_connection='latin1_swedish_ci';
-- source include/ctype_filesort.inc
-- source include/ctype_like_escape.inc
+-- source include/ctype_str_to_date.inc
SET collation_connection='latin1_bin';
-- source include/ctype_filesort.inc
-- source include/ctype_like_escape.inc
diff --git a/mysql-test/t/ctype_sjis.test b/mysql-test/t/ctype_sjis.test
index 854f9c01a2b..47d2295d620 100644
--- a/mysql-test/t/ctype_sjis.test
+++ b/mysql-test/t/ctype_sjis.test
@@ -69,6 +69,7 @@ SET collation_connection='sjis_japanese_ci';
-- source include/ctype_innodb_like.inc
-- source include/ctype_like_escape.inc
-- source include/ctype_like_range_f1f2.inc
+-- source include/ctype_str_to_date.inc
SET collation_connection='sjis_bin';
-- source include/ctype_filesort.inc
-- source include/ctype_innodb_like.inc
diff --git a/mysql-test/t/ctype_ucs.test b/mysql-test/t/ctype_ucs.test
index 41171b82842..c74f38e6559 100644
--- a/mysql-test/t/ctype_ucs.test
+++ b/mysql-test/t/ctype_ucs.test
@@ -421,6 +421,7 @@ SET collation_connection='ucs2_general_ci';
-- source include/ctype_like_escape.inc
-- source include/ctype_german.inc
-- source include/ctype_like_range_f1f2.inc
+-- source include/ctype_str_to_date.inc
SET NAMES latin1;
SET collation_connection='ucs2_bin';
-- source include/ctype_filesort.inc
diff --git a/mysql-test/t/ctype_utf8.test b/mysql-test/t/ctype_utf8.test
index c503e9722f1..6f29379eb8c 100644
--- a/mysql-test/t/ctype_utf8.test
+++ b/mysql-test/t/ctype_utf8.test
@@ -731,6 +731,7 @@ SET collation_connection='utf8_general_ci';
-- source include/ctype_filesort.inc
-- source include/ctype_like_escape.inc
-- source include/ctype_german.inc
+-- source include/ctype_str_to_date.inc
SET collation_connection='utf8_bin';
-- source include/ctype_filesort.inc
-- source include/ctype_like_escape.inc