Skip to content

Commit db61211

Browse files
committed
Allow WHERE clause on update stmt
1 parent 6b99b0b commit db61211

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

src/backend/parser/cypher_gram.y

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ static void processCASbits(int cas_bits, int location, const char *constrType,
258258
%type <node> select_no_parens select_with_parens select_clause
259259
simple_select
260260

261-
%type <node> where_clause
261+
%type <node> where_clause where_or_current_clause
262262
a_expr b_expr c_expr AexprConst indirection_el opt_slice_bound
263263
columnref in_expr having_clause array_expr
264264
OptWhereClause
@@ -1385,6 +1385,21 @@ where_clause:
13851385
| /*EMPTY*/ { $$ = NULL; }
13861386
;
13871387

1388+
1389+
/* variant for UPDATE and DELETE */
1390+
where_or_current_clause:
1391+
WHERE a_expr { $$ = $2; }
1392+
/*| WHERE CURRENT_P OF cursor_name
1393+
{
1394+
CurrentOfExpr *n = makeNode(CurrentOfExpr);
1395+
1396+
n->cursor_name = $4;
1397+
n->cursor_param = 0;
1398+
$$ = (Node *) n;
1399+
}*/
1400+
| /*EMPTY*/ { $$ = NULL; }
1401+
;
1402+
13881403
opt_sort_clause:
13891404
sort_clause { $$ = $1; }
13901405
| /*EMPTY*/ { $$ = NIL; }
@@ -1609,14 +1624,14 @@ UpdateStmt: //opt_with_clause
16091624
UPDATE relation_expr_opt_alias
16101625
SET set_clause_list
16111626
from_clause
1612-
//where_or_current_clause
1627+
where_or_current_clause
16131628
//returning_clause
16141629
{
16151630
UpdateStmt *n = makeNode(UpdateStmt);
16161631
n->relation = $2;
16171632
n->targetList = $4;
16181633
n->fromClause = $5;
1619-
n->whereClause = NULL;//$7;
1634+
n->whereClause = $6;//$7;
16201635
n->returningList = NULL;//$8;
16211636
n->withClause = NULL;//$1;
16221637
$$ = (Node *)n;

0 commit comments

Comments
 (0)