Skip to content

Commit 6d46e86

Browse files
committed
feat: add in array for filter
1 parent dd417ef commit 6d46e86

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

src/main/grammars/prql.bnf

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ expr ::= between_expr | func_call | fun_pipe_call | (LPAREN (expr_literal | fun
142142
math_expr ::= math_expr_atomic (math_operation (expr_literal | math_expr_atomic) )*
143143
math_expr_atomic ::= (expr_literal math_operation (expr_literal | math_expr_atomic) ) | (LPAREN expr_literal math_operation (expr_literal | math_expr_atomic) RPAREN)
144144
bool_expr ::= between_expr | ( LPAREN (math_expr | expr_literal ) compare_operation expr RPAREN ) | ( (math_expr | expr_literal) compare_operation expr)
145+
in_expr ::= expr_literal OR IN array_literal
145146
// column
146147
column_name ::= IDENTIFIER | AGGREGATE_FUNCTION
147148
column_with_table ::= table_alias DOT IDENTIFIER
@@ -195,8 +196,9 @@ stmt_concat ::= 'concat' table_variant {pin=1}
195196
stmt_take ::= 'take' ( positive_range | INTEGER_LITERAL ) {pin=1}
196197
// filter statement
197198
stmt_filter ::= 'filter' (stmt_filter_pair |stmt_filter_pairs) {pin=1}
198-
stmt_filter_pair ::= bool_expr
199-
stmt_filter_pairs ::= LPAREN bool_expr ( (AND_LITERAL | D_AND | OR_LITERAL | D_OR ) bool_expr)* RPAREN
199+
stmt_filter_expr ::= bool_expr | in_expr
200+
stmt_filter_pair ::= stmt_filter_expr
201+
stmt_filter_pairs ::= LPAREN stmt_filter_expr ( (AND_LITERAL | D_AND | OR_LITERAL | D_OR ) stmt_filter_expr)* RPAREN
200202
// derive statement
201203
stmt_derive ::= 'derive' (stmt_derive_pairs | stmt_derive_pair) {pin=1}
202204
stmt_derive_pair ::= (column_name EQ)? (math_expr| expr)

0 commit comments

Comments
 (0)