diff options
author | unknown <antony@ltantony.rdg.cyberkinetica.homeunix.net> | 2004-11-17 15:49:10 +0000 |
---|---|---|
committer | unknown <antony@ltantony.rdg.cyberkinetica.homeunix.net> | 2004-11-17 15:49:10 +0000 |
commit | 191fa2993286da65e1896801e6e4a9bdf153c200 (patch) | |
tree | 64d4ad2d56e8db843d4d3030e373422b4c15938b /mysql-test/r/bool.result | |
parent | 1dad655030e240bbf9a48e3290ffe48b68d82466 (diff) | |
download | mariadb-git-191fa2993286da65e1896801e6e4a9bdf153c200.tar.gz |
WL#638 - Fix precedence for parsing NOT ... LIKE expression s
Rework parser expression rules
Rework handling for "||" concat/or
Eliminate some shift/reduce conflicts
Add support for "xxx IS [ NOT ] truth_value"
mysql-test/r/ansi.result:
Fix test for new BROKEN_NOT mode bit
mysql-test/r/bool.result:
WL#638
New test for BROKEN_NOT mode
New test for "expr IS [NOT] truth_value" syntax
mysql-test/r/sql_mode.result:
Fix test for new BROKEN_NOT mode bit
mysql-test/t/bool.test:
WL#638
New test for BROKEN_NOT mode
New test for "expr IS [NOT] truth_value" syntax
sql/lex.h:
WL#638
"&&" and "AND" return different tokens,
NOT token changed to NOT_SYM
OR_OR_CONCAT token changed to OR_OR_SYM
New token "UNKNOWN"
sql/mysql_priv.h:
WL#638
New mode: BROKEN_NOT
sql/mysqld.cc:
WL#638
New mode: BROKEN_NOT
sql/set_var.cc:
WL#638
New mode: BROKEN_NOT
BROKEN_NOT is set in MYSQL323 and MYSQL40 modes
sql/sql_lex.cc:
Bug#638
Alter tokens returned by lexer depending upon sql_mode:
Return NOT2_SYM token instead of NOT_SYM when in BROKEN_NOT mode
Return OR2_SYM token instead of OR_OR_SYM when not in PIPES_AS_CONCAT mode
sql/sql_yacc.yy:
WL#638
Change grammar to respect proper SQL syntax for NOT
Clean up grammar, eliminate >100 shift/reduce conflicts
New support for "expr IS [NOT] truth_value" SQL syntax
Remove or_or_concat() support func. New support func is_truth_value()
Diffstat (limited to 'mysql-test/r/bool.result')
-rw-r--r-- | mysql-test/r/bool.result | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/mysql-test/r/bool.result b/mysql-test/r/bool.result index a054eceec0c..1ef4b55fc36 100644 --- a/mysql-test/r/bool.result +++ b/mysql-test/r/bool.result @@ -33,6 +33,24 @@ a SELECT * FROM t1 where (1 AND a) IS NULL; a NULL +set sql_mode='broken_not'; +select * from t1 where not a between 2 and 3; +a +set sql_mode=default; +select * from t1 where not a between 2 and 3; +a +0 +1 +select a, a is false, a is true, a is unknown from t1; +a a is false a is true a is unknown +0 1 0 0 +1 0 1 0 +NULL 0 0 1 +select a, a is not false, a is not true, a is not unknown from t1; +a a is not false a is not true a is not unknown +0 0 1 1 +1 1 0 1 +NULL 1 1 0 SET @a=0, @b=0; SELECT * FROM t1 WHERE NULL AND (@a:=@a+1); a |