mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
191fa29932
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()
19 lines
487 B
Text
19 lines
487 B
Text
drop table if exists t1;
|
|
set sql_mode="MySQL40";
|
|
select @@sql_mode;
|
|
@@sql_mode
|
|
NO_FIELD_OPTIONS,MYSQL40,BROKEN_NOT
|
|
set @@sql_mode="ANSI";
|
|
select @@sql_mode;
|
|
@@sql_mode
|
|
REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ONLY_FULL_GROUP_BY,ANSI
|
|
SELECT 'A' || 'B';
|
|
'A' || 'B'
|
|
AB
|
|
CREATE TABLE t1 (id INT, id2 int);
|
|
SELECT id,NULL,1,1.1,'a' FROM t1 GROUP BY id;
|
|
id NULL 1 1.1 a
|
|
SELECT id FROM t1 GROUP BY id2;
|
|
ERROR 42000: 'test.t1.id' isn't in GROUP BY
|
|
drop table t1;
|
|
SET @@SQL_MODE="";
|