summaryrefslogtreecommitdiff
path: root/mysql-test/main/ansi.test
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.com>2018-05-16 17:21:31 +0400
committerAlexander Barkov <bar@mariadb.com>2018-05-16 17:21:31 +0400
commitc2df4e9d624199db421f6fc1a58e354f3f5dbac8 (patch)
tree733888eeda14e0ab26ae219edcbbcdd9ad2f02b6 /mysql-test/main/ansi.test
parent66360506f0a0b76590d660e2ff5be3248cdba01c (diff)
downloadmariadb-git-c2df4e9d624199db421f6fc1a58e354f3f5dbac8.tar.gz
MDEV-16186 Concatenation operator || returns wrong results in sql_mode=ORACLE
Diffstat (limited to 'mysql-test/main/ansi.test')
-rw-r--r--mysql-test/main/ansi.test33
1 files changed, 33 insertions, 0 deletions
diff --git a/mysql-test/main/ansi.test b/mysql-test/main/ansi.test
index fa7f999954e..0620465728b 100644
--- a/mysql-test/main/ansi.test
+++ b/mysql-test/main/ansi.test
@@ -39,3 +39,36 @@ SHOW CREATE TABLE t1;
DROP TABLE t1;
# End of 4.1 tests
+
+
+--echo #
+--echo # MDEV-16186 Concatenation operator || returns wrong results in sql_mode=ORACLE
+--echo #
+
+SET sql_mode=ANSI;
+
+# Concatenation operator || is stronger than numeric dyadic operators ^ * + <<
+
+SELECT -1<<1||1 AS a FROM DUAL;
+SELECT -1||0<<1 AS a FROM DUAL;
+
+EXPLAIN EXTENDED SELECT -1<<1||1 AS a FROM DUAL;
+EXPLAIN EXTENDED SELECT -1||0<<1 AS a FROM DUAL;
+
+SELECT -1+1||1 AS a FROM DUAL;
+SELECT -1||0+1 AS a FROM DUAL;
+
+EXPLAIN EXTENDED SELECT -1+1||1 AS a FROM DUAL;
+EXPLAIN EXTENDED SELECT -1||0+1 AS a FROM DUAL;
+
+SELECT 1*1||-1 AS a FROM DUAL;
+SELECT 1||1*-1 AS a FROM DUAL;
+
+EXPLAIN EXTENDED SELECT 1*1||-1 AS a FROM DUAL;
+EXPLAIN EXTENDED SELECT 1||1*-1 AS a FROM DUAL;
+
+SELECT -1^1||1 AS a FROM DUAL;
+SELECT -1||0^1 AS a FROM DUAL;
+
+EXPLAIN EXTENDED SELECT -1^1||1 AS a FROM DUAL;
+EXPLAIN EXTENDED SELECT -1||0^1 AS a FROM DUAL;