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/t/bool.test | |
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/t/bool.test')
-rw-r--r-- | mysql-test/t/bool.test | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/mysql-test/t/bool.test b/mysql-test/t/bool.test index b263ecfded2..644fdbfbf60 100644 --- a/mysql-test/t/bool.test +++ b/mysql-test/t/bool.test @@ -20,6 +20,16 @@ SELECT * FROM t1 where (1 AND a)=0; SELECT * FROM t1 where (1 AND a)=1; SELECT * FROM t1 where (1 AND a) IS NULL; +# WL#638 - Behaviour of NOT does not follow SQL specification +set sql_mode='broken_not'; +select * from t1 where not a between 2 and 3; +set sql_mode=default; +select * from t1 where not a between 2 and 3; + +# SQL boolean tests +select a, a is false, a is true, a is unknown from t1; +select a, a is not false, a is not true, a is not unknown from t1; + # Verify that NULL optimisation works in AND clause: SET @a=0, @b=0; SELECT * FROM t1 WHERE NULL AND (@a:=@a+1); |