diff options
author | Alexander Barkov <bar@mariadb.org> | 2015-09-10 15:01:44 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.org> | 2015-09-10 15:01:44 +0400 |
commit | 8e553c455c4740a51d2a7d0e23c3c79863b5df22 (patch) | |
tree | 8bc4ae106851eb2b6f90d75b4a83c55f7315fdeb /mysql-test | |
parent | 4278d6d402b7ff7eeafe264f600cceb7b614792a (diff) | |
download | mariadb-git-8e553c455c4740a51d2a7d0e23c3c79863b5df22.tar.gz |
MDEV-8785 Wrong results for EXPLAIN EXTENDED...WHERE NULLIF(latin1_col, _utf8'a' COLLATE utf8_bin) IS NOT NULL
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/r/explain_json.result | 20 | ||||
-rw-r--r-- | mysql-test/r/null.result | 19 | ||||
-rw-r--r-- | mysql-test/t/explain_json.test | 8 | ||||
-rw-r--r-- | mysql-test/t/null.test | 10 |
4 files changed, 57 insertions, 0 deletions
diff --git a/mysql-test/r/explain_json.result b/mysql-test/r/explain_json.result index d741c1e5362..07ff72b4208 100644 --- a/mysql-test/r/explain_json.result +++ b/mysql-test/r/explain_json.result @@ -1090,3 +1090,23 @@ EXPLAIN } } DROP TABLE t1; +# +# MDEV-8785 Wrong results for EXPLAIN EXTENDED...WHERE NULLIF(latin1_col, _utf8'a' COLLATE utf8_bin) IS NOT NULL +# +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +INSERT INTO t1 VALUES ('a'),('A'); +EXPLAIN FORMAT=JSON SELECT * FROM t1 WHERE NULLIF(a,_utf8'a' COLLATE utf8_bin); +EXPLAIN +{ + "query_block": { + "select_id": 1, + "table": { + "table_name": "t1", + "access_type": "ALL", + "rows": 2, + "filtered": 100, + "attached_condition": "(case when convert(t1.a using utf8) = <cache>((_utf8'a' collate utf8_bin)) then NULL else t1.a end)" + } + } +} +DROP TABLE t1; diff --git a/mysql-test/r/null.result b/mysql-test/r/null.result index debb3c05681..e5ce6a10f09 100644 --- a/mysql-test/r/null.result +++ b/mysql-test/r/null.result @@ -1390,5 +1390,24 @@ Warning 1292 Incorrect datetime value: '1' Warning 1292 Incorrect datetime value: '1' DROP TABLE t1; # +# MDEV-8785 Wrong results for EXPLAIN EXTENDED...WHERE NULLIF(latin1_col, _utf8'a' COLLATE utf8_bin) IS NOT NULL +# +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +INSERT INTO t1 VALUES ('a'),('A'); +SELECT a, NULLIF(a,_utf8'a' COLLATE utf8_bin) IS NULL FROM t1; +a NULLIF(a,_utf8'a' COLLATE utf8_bin) IS NULL +a 1 +A 0 +SELECT CHARSET(NULLIF(a,_utf8'a' COLLATE utf8_bin)) FROM t1; +CHARSET(NULLIF(a,_utf8'a' COLLATE utf8_bin)) +latin1 +latin1 +EXPLAIN EXTENDED SELECT NULLIF(a,_utf8'a' COLLATE utf8_bin) IS NULL AS expr FROM t1; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 +Warnings: +Note 1003 select isnull((case when convert(`test`.`t1`.`a` using utf8) = (_utf8'a' collate utf8_bin) then NULL else `test`.`t1`.`a` end)) AS `expr` from `test`.`t1` +DROP TABLE t1; +# # End of 10.1 tests # diff --git a/mysql-test/t/explain_json.test b/mysql-test/t/explain_json.test index e12cbed6d52..1078222725e 100644 --- a/mysql-test/t/explain_json.test +++ b/mysql-test/t/explain_json.test @@ -286,3 +286,11 @@ CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); INSERT INTO t1 VALUES ('a'),('b'); EXPLAIN FORMAT=JSON SELECT * FROM t1 WHERE a=_latin1 0xDF; DROP TABLE t1; + +--echo # +--echo # MDEV-8785 Wrong results for EXPLAIN EXTENDED...WHERE NULLIF(latin1_col, _utf8'a' COLLATE utf8_bin) IS NOT NULL +--echo # +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +INSERT INTO t1 VALUES ('a'),('A'); +EXPLAIN FORMAT=JSON SELECT * FROM t1 WHERE NULLIF(a,_utf8'a' COLLATE utf8_bin); +DROP TABLE t1; diff --git a/mysql-test/t/null.test b/mysql-test/t/null.test index 65a45b9a21c..695c22f3bbd 100644 --- a/mysql-test/t/null.test +++ b/mysql-test/t/null.test @@ -868,6 +868,16 @@ CREATE TABLE t1 AS SELECT END AS b; DROP TABLE t1; +--echo # +--echo # MDEV-8785 Wrong results for EXPLAIN EXTENDED...WHERE NULLIF(latin1_col, _utf8'a' COLLATE utf8_bin) IS NOT NULL +--echo # +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1); +INSERT INTO t1 VALUES ('a'),('A'); +SELECT a, NULLIF(a,_utf8'a' COLLATE utf8_bin) IS NULL FROM t1; +SELECT CHARSET(NULLIF(a,_utf8'a' COLLATE utf8_bin)) FROM t1; +EXPLAIN EXTENDED SELECT NULLIF(a,_utf8'a' COLLATE utf8_bin) IS NULL AS expr FROM t1; +DROP TABLE t1; + --echo # --echo # End of 10.1 tests |