@@ -3722,22 +3722,22 @@ expr
37223722 : object_name DOT NEXTVAL
37233723 | primitive_expression
37243724 | function_call
3725+ | expr LSB expr RSB // array access
3726+ | expr COLON expr // json access
3727+ | expr DOT (VALUE | expr)
37253728 | expr COLLATE string
37263729 | case_expression
37273730 | iff_expr
3728- | full_column_name
37293731 | bracket_expression
37303732 | op=( PLUS | MINUS ) expr
3731- | op=NOT expr
37323733 | expr op=(STAR | DIVIDE | MODULE ) expr
37333734 | expr op=(PLUS | MINUS | PIPE_PIPE ) expr
3734- | expr op=( AND | OR | NOT ) expr // bool operation
3735- | expr LSB expr RSB // array access
3735+ | expr comparison_operator expr
3736+ | op=NOT + expr
3737+ | expr AND expr // bool operation
3738+ | expr OR expr // bool operation
37363739 | arr_literal
37373740// | expr time_zone
3738- | expr COLON expr // json access
3739- | expr DOT VALUE
3740- | expr DOT expr
37413741 | expr COLON_COLON data_type // cast
37423742 | expr over_clause
37433743 | CAST LR_BRACKET expr AS data_type RR_BRACKET
@@ -3748,7 +3748,6 @@ expr
37483748 | subquery
37493749 | try_cast_expr
37503750 | trim_expression
3751- | expr comparison_operator expr
37523751 | expr IS null_not_null
37533752 | expr NOT ? IN LR_BRACKET (subquery | expr_list) RR_BRACKET
37543753 | expr NOT ? ( LIKE | ILIKE ) expr (ESCAPE expr)?
@@ -3815,7 +3814,8 @@ data_type
38153814primitive_expression
38163815 : DEFAULT // ?
38173816 | NULL_
3818- | id_
3817+ | id_ (' .' id_)* // json field access
3818+ | full_column_name
38193819 | literal
38203820 // | json_literal
38213821 // | arr_literal
@@ -4252,7 +4252,6 @@ subquery
42524252
42534253predicate
42544254 : EXISTS LR_BRACKET subquery RR_BRACKET
4255- | expr comparison_operator expr
42564255 | expr comparison_operator (ALL | SOME | ANY ) ' (' subquery ' )'
42574256 | expr NOT ? BETWEEN expr AND expr
42584257 | expr NOT ? IN ' (' (subquery | expr_list) ' )'
0 commit comments