summaryrefslogtreecommitdiff
path: root/mysql-test/main/ansi.test
diff options
context:
space:
mode:
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;