Small code cleanup for recent UPDATE SET (values) patch.
authorBruce Momjian <bruce@momjian.us>
Sat, 2 Sep 2006 20:52:01 +0000 (20:52 +0000)
committerBruce Momjian <bruce@momjian.us>
Sat, 2 Sep 2006 20:52:01 +0000 (20:52 +0000)
src/backend/parser/gram.y

index eab360bc7748feb8679c404b1ba5b0d885606d89..1ddb5cb76ec13f0de30f505d7fc9b79708411f43 100644 (file)
@@ -11,7 +11,7 @@
  *
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.561 2006/09/02 20:34:47 momjian Exp $
+ *       $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.562 2006/09/02 20:52:01 momjian Exp $
  *
  * HISTORY
  *       AUTHOR                        DATE                    MAJOR EVENT
@@ -238,7 +238,7 @@ static void doNegateFloat(Value *v);
                                qualified_name_list any_name any_name_list
                                any_operator expr_list attrs
                                target_list update_col_list update_target_list
-                               update_value_list insert_column_list
+                               update_value_list set_opt insert_column_list
                                values_list def_list indirection opt_indirection
                                group_clause TriggerFuncArgs select_limit
                                opt_select_limit opclass_item_list
@@ -5526,21 +5526,7 @@ opt_nowait:      NOWAIT                                                  { $$ = TRUE; }
  *****************************************************************************/
 
 UpdateStmt: UPDATE relation_expr_opt_alias
-                       SET update_target_list
-                       from_clause
-                       where_clause
-                       returning_clause
-                               {
-                                       UpdateStmt *n = makeNode(UpdateStmt);
-                                       n->relation = $2;
-                                       n->targetList = $4;
-                                       n->fromClause = $5;
-                                       n->whereClause = $6;
-                                       n->returningList = $7;
-                                       $$ = (Node *)n;
-                               }
-            | UPDATE relation_expr_opt_alias
-                       SET update_target_lists_list
+                       SET set_opt
                        from_clause
                        where_clause
                        returning_clause
@@ -5555,6 +5541,11 @@ UpdateStmt: UPDATE relation_expr_opt_alias
                                }
                ;
 
+set_opt:
+                       update_target_list                                              { $$ = $1; }
+                       | update_target_lists_list                              { $$ = $1; }
+               ;
+
 
 /*****************************************************************************
  *
@@ -5981,7 +5972,7 @@ update_target_lists_el:
                                        {
                                                /* merge update_value_list with update_col_list */
                                                ResTarget *res_col = (ResTarget *) lfirst(col_cell);
-                                               ResTarget *res_val = (ResTarget *) lfirst(val_cell);
+                                               Node *res_val = (Node *) lfirst(val_cell);
 
                                                res_col->val = (Node *)copyObject(res_val);
                                        }