diff options
author | unknown <ram@gw.mysql.r18.ru> | 2004-02-16 19:43:43 +0400 |
---|---|---|
committer | unknown <ram@gw.mysql.r18.ru> | 2004-02-16 19:43:43 +0400 |
commit | 6c2de2409a57299d0145f47ac47565b531a06acd (patch) | |
tree | 46a736219504febcba841b7caab314d49f44d97b | |
parent | 653112051422ab0191f728b0b33f4858e52d2d2c (diff) | |
download | mariadb-git-6c2de2409a57299d0145f47ac47565b531a06acd.tar.gz |
fix for the bug #2786 incorrect precedence for XOR operator
-rw-r--r-- | mysql-test/r/func_test.result | 3 | ||||
-rw-r--r-- | mysql-test/t/func_test.test | 1 | ||||
-rw-r--r-- | sql/sql_yacc.yy | 3 |
3 files changed, 5 insertions, 2 deletions
diff --git a/mysql-test/r/func_test.result b/mysql-test/r/func_test.result index e11eaa0d246..aaf5039eb43 100644 --- a/mysql-test/r/func_test.result +++ b/mysql-test/r/func_test.result @@ -46,6 +46,9 @@ select 3 ^ 11, 1 ^ 1, 1 ^ 0, 1 ^ NULL, NULL ^ 1; select 1 XOR 1, 1 XOR 0, 0 XOR 1, 0 XOR 0, NULL XOR 1, 1 XOR NULL, 0 XOR NULL; 1 XOR 1 1 XOR 0 0 XOR 1 0 XOR 0 NULL XOR 1 1 XOR NULL 0 XOR NULL 0 1 1 0 NULL NULL NULL +select 1 like 2 xor 2 like 1; +1 like 2 xor 2 like 1 +0 create table t1 (a int); insert t1 values (1); select * from t1 where 1 xor 1; diff --git a/mysql-test/t/func_test.test b/mysql-test/t/func_test.test index e03d0dd0f0f..795479a21a9 100644 --- a/mysql-test/t/func_test.test +++ b/mysql-test/t/func_test.test @@ -17,6 +17,7 @@ select 2 in (3,2,5,9,5,1),"monty" in ("david","monty","allan"), 1.2 in (1.4,1.2, select -1.49 or -1.49,0.6 or 0.6; select 3 ^ 11, 1 ^ 1, 1 ^ 0, 1 ^ NULL, NULL ^ 1; select 1 XOR 1, 1 XOR 0, 0 XOR 1, 0 XOR 0, NULL XOR 1, 1 XOR NULL, 0 XOR NULL; +select 1 like 2 xor 2 like 1; create table t1 (a int); insert t1 values (1); diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 991a5f500e6..4b8e73f35ce 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -478,7 +478,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize); %token CIPHER_SYM %left SET_VAR -%left OR_OR_CONCAT OR +%left OR_OR_CONCAT OR XOR %left AND %left BETWEEN_SYM CASE_SYM WHEN_SYM THEN_SYM ELSE %left EQ EQUAL_SYM GE GT_SYM LE LT NE IS LIKE REGEXP IN_SYM @@ -488,7 +488,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize); %left '-' '+' %left '*' '/' '%' %left NEG '~' -%left XOR %left '^' %right NOT %right BINARY |