11
11
*
12
12
*
13
13
* IDENTIFICATION
14
- * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.561 2006/09/02 20:34:47 momjian Exp $
14
+ * $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.562 2006/09/02 20:52:01 momjian Exp $
15
15
*
16
16
* HISTORY
17
17
* AUTHORDATEMAJOR EVENT
@@ -238,7 +238,7 @@ static void doNegateFloat(Value *v);
238
238
qualified_name_list any_name any_name_list
239
239
any_operator expr_list attrs
240
240
target_list update_col_list update_target_list
241
- update_value_list insert_column_list
241
+ update_value_list set_opt insert_column_list
242
242
values_list def_list indirection opt_indirection
243
243
group_clause TriggerFuncArgs select_limit
244
244
opt_select_limit opclass_item_list
@@ -5526,21 +5526,7 @@ opt_nowait:NOWAIT{ $$ = TRUE; }
5526
5526
*****************************************************************************/
5527
5527
5528
5528
UpdateStmt: UPDATE relation_expr_opt_alias
5529
- SET update_target_list
5530
- from_clause
5531
- where_clause
5532
- returning_clause
5533
- {
5534
- UpdateStmt *n = makeNode(UpdateStmt);
5535
- n->relation =$2 ;
5536
- n->targetList =$4 ;
5537
- n->fromClause =$5 ;
5538
- n->whereClause =$6 ;
5539
- n->returningList =$7 ;
5540
- $$ = (Node *)n;
5541
- }
5542
- | UPDATE relation_expr_opt_alias
5543
- SET update_target_lists_list
5529
+ SET set_opt
5544
5530
from_clause
5545
5531
where_clause
5546
5532
returning_clause
@@ -5555,6 +5541,11 @@ UpdateStmt: UPDATE relation_expr_opt_alias
5555
5541
}
5556
5542
;
5557
5543
5544
+ set_opt:
5545
+ update_target_list{$$ =$1 ; }
5546
+ | update_target_lists_list{$$ =$1 ; }
5547
+ ;
5548
+
5558
5549
5559
5550
/* ****************************************************************************
5560
5551
*
@@ -5981,7 +5972,7 @@ update_target_lists_el:
5981
5972
{
5982
5973
/* merge update_value_list with update_col_list*/
5983
5974
ResTarget *res_col = (ResTarget *) lfirst(col_cell);
5984
- ResTarget *res_val = (ResTarget *) lfirst(val_cell);
5975
+ Node *res_val = (Node *) lfirst(val_cell);
5985
5976
5986
5977
res_col->val = (Node *)copyObject(res_val);
5987
5978
}