diff options
author | Bruce Momjian <bruce@momjian.us> | 2003-06-25 04:19:24 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2003-06-25 04:19:24 +0000 |
commit | 53c4f1233fa950c0c6c0e0bbaa7a177278e14b04 (patch) | |
tree | 43a4943c7111a7ffa40c3a41de76d8dc563c535a /src/backend/rewrite/rewriteHandler.c | |
parent | a09ccc70dd78b33271b06a6c250f7578aa4e16a1 (diff) | |
download | postgresql-53c4f1233fa950c0c6c0e0bbaa7a177278e14b04.tar.gz postgresql-53c4f1233fa950c0c6c0e0bbaa7a177278e14b04.zip |
UPDATE ... SET <col> = DEFAULT
Rod Taylor
Diffstat (limited to 'src/backend/rewrite/rewriteHandler.c')
-rw-r--r-- | src/backend/rewrite/rewriteHandler.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/backend/rewrite/rewriteHandler.c b/src/backend/rewrite/rewriteHandler.c index 5d481a3f0a5..4c1e1247b2c 100644 --- a/src/backend/rewrite/rewriteHandler.c +++ b/src/backend/rewrite/rewriteHandler.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.120 2003/05/02 20:54:35 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.121 2003/06/25 04:19:24 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -307,7 +307,25 @@ rewriteTargetList(Query *parsetree, Relation target_relation) { Assert(strcmp(resdom->resname, NameStr(att_tup->attname)) == 0); - new_tle = process_matched_tle(old_tle, new_tle); + + if (old_tle->expr != NULL && IsA(old_tle->expr, SetToDefault)) + { + /* Set to the default value of the column, as requested */ + Node *new_expr; + + new_expr = build_column_default(target_relation, attrno); + + new_tle = makeTargetEntry(makeResdom(attrno, + att_tup->atttypid, + att_tup->atttypmod, + pstrdup(NameStr(att_tup->attname)), + false), + (Expr *) new_expr); + } + else + /* Normal Case */ + new_tle = process_matched_tle(old_tle, new_tle); + /* keep scanning to detect multiple assignments to attr */ } } |