summaryrefslogtreecommitdiff
path: root/connectivity/source/parse/sqlbison.y
diff options
context:
space:
mode:
Diffstat (limited to 'connectivity/source/parse/sqlbison.y')
-rw-r--r--connectivity/source/parse/sqlbison.y44
1 files changed, 17 insertions, 27 deletions
diff --git a/connectivity/source/parse/sqlbison.y b/connectivity/source/parse/sqlbison.y
index 8ff9b0c84faa..6e7b973985cc 100644
--- a/connectivity/source/parse/sqlbison.y
+++ b/connectivity/source/parse/sqlbison.y
@@ -222,7 +222,7 @@ using namespace connectivity;
%type <pParseNode> non_join_query_term non_join_query_primary simple_table
%type <pParseNode> table_value_const_list row_value_constructor row_value_const_list row_value_constructor_elem
%type <pParseNode> qualified_join value_exp query_term join_type outer_join_type join_condition boolean_term
-%type <pParseNode> boolean_factor truth_value boolean_test boolean_primary named_columns_join join_spec
+%type <pParseNode> boolean_factor boolean_primary named_columns_join join_spec
%type <pParseNode> cast_operand cast_target factor datetime_value_exp /*interval_value_exp*/ datetime_term datetime_factor
%type <pParseNode> datetime_primary datetime_value_fct time_zone time_zone_specifier /*interval_term*/ interval_qualifier
%type <pParseNode> start_field non_second_datetime_field end_field single_datetime_field extract_field datetime_field time_zone_field
@@ -1081,12 +1081,6 @@ opt_having_clause:
;
/* search conditions */
-truth_value:
- SQL_TOKEN_TRUE
- | SQL_TOKEN_FALSE
- | SQL_TOKEN_UNKNOWN
- | SQL_TOKEN_NULL
- ;
boolean_primary:
predicate
| '(' search_condition ')'
@@ -1130,20 +1124,9 @@ parenthesized_boolean_value_expression:
$$->append(newNode(")", SQL_NODE_PUNCTUATION));
}
;
-boolean_test:
- boolean_primary
- | boolean_primary SQL_TOKEN_IS sql_not truth_value
- {
- $$ = SQL_NEW_RULE;
- $$->append($1);
- $$->append($2);
- $$->append($3);
- $$->append($4);
- }
- ;
boolean_factor:
- boolean_test
- | SQL_TOKEN_NOT boolean_test
+ boolean_primary
+ | SQL_TOKEN_NOT boolean_primary
{ // boolean_factor: rule 1
$$ = SQL_NEW_RULE;
$$->append($1);
@@ -1171,12 +1154,12 @@ search_condition:
}
;
predicate:
- comparison_predicate
+ comparison_predicate %dprec 2
| between_predicate
| all_or_any_predicate
| existence_test
| unique_test
- | test_for_null
+ | test_for_null %dprec 1
| in_predicate
| like_predicate
;
@@ -1384,13 +1367,20 @@ opt_escape:
;
null_predicate_part_2:
- SQL_TOKEN_IS sql_not SQL_TOKEN_NULL
- {
+ SQL_TOKEN_IS sql_not SQL_TOKEN_NULL
+ {
$$ = SQL_NEW_RULE; // test_for_null: rule 1
$$->append($1);
$$->append($2);
$$->append($3);
- }
+ }
+ | SQL_TOKEN_IS sql_not SQL_TOKEN_UNKNOWN
+ {
+ $$ = SQL_NEW_RULE; // test_for_null: rule 1
+ $$->append($1);
+ $$->append($2);
+ $$->append($3);
+ }
;
test_for_null:
row_value_constructor null_predicate_part_2
@@ -3959,11 +3949,11 @@ when_operand_list:
;
when_operand:
row_value_constructor_elem
- | comparison_predicate_part_2
+ | comparison_predicate_part_2 %dprec 2
| between_predicate_part_2
| in_predicate_part_2
| character_like_predicate_part_2
- | null_predicate_part_2
+ | null_predicate_part_2 %dprec 1
;
searched_when_clause_list:
searched_when_clause