diff options
author | bell@sanja.is.com.ua <> | 2004-08-29 23:14:46 +0300 |
---|---|---|
committer | bell@sanja.is.com.ua <> | 2004-08-29 23:14:46 +0300 |
commit | 18366c930c54452b20245501d55babcca963ec5b (patch) | |
tree | 15e9f105403916895459b6c2b74f5c03ab99f91c /sql/sql_yacc.yy | |
parent | 34dc3a86df9cb74e3e761e2c84a36fe6232e6342 (diff) | |
download | mariadb-git-18366c930c54452b20245501d55babcca963ec5b.tar.gz |
NOT elimination moved in parsing (suggested by Monty)
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r-- | sql/sql_yacc.yy | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 1c057e03a11..afb55463ad1 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -2755,8 +2755,16 @@ simple_expr: | '+' expr %prec NEG { $$= $2; } | '-' expr %prec NEG { $$= new Item_func_neg($2); } | '~' expr %prec NEG { $$= new Item_func_bit_neg($2); } - | NOT expr %prec NEG { $$= new Item_func_not($2); } - | '!' expr %prec NEG { $$= new Item_func_not($2); } + | NOT expr %prec NEG + { + if (($$= $2->neg_transformer(YYTHD)) == 0) + $$= new Item_func_not($2); + } + | '!' expr %prec NEG + { + if (($$= $2->neg_transformer(YYTHD)) == 0) + $$= new Item_func_not($2); + } | '(' expr ')' { $$= $2; } | '(' expr ',' expr_list ')' { |