From: Bruce Momjian Date: Tue, 20 Oct 1998 17:21:44 +0000 (+0000) Subject: Fix for rules system from Jan. X-Git-Url: http://git.postgresql.org/gitweb/static/main.js?a=commitdiff_plain;h=d3418b4f2bee6058657ca638c948b0cb6c172e16;p=users%2Fbernd%2Fpostgres.git Fix for rules system from Jan. --- diff --git a/src/backend/rewrite/rewriteHandler.c b/src/backend/rewrite/rewriteHandler.c index 690c2593c9..431cbc7c92 100644 --- a/src/backend/rewrite/rewriteHandler.c +++ b/src/backend/rewrite/rewriteHandler.c @@ -1789,11 +1789,11 @@ apply_RIR_view(Node **nodePtr, int rt_index, RangeTblEntry *rte, List *tlist, in return; } + exp = copyObject(exp); if (var->varlevelsup > 0 && nodeTag(exp) == T_Var) { - exp = copyObject(exp); ((Var *)exp)->varlevelsup = var->varlevelsup; - } + } *nodePtr = exp; *modified = TRUE; } diff --git a/src/backend/rewrite/rewriteManip.c b/src/backend/rewrite/rewriteManip.c index 52c50723c4..16907433b2 100644 --- a/src/backend/rewrite/rewriteManip.c +++ b/src/backend/rewrite/rewriteManip.c @@ -418,14 +418,15 @@ ResolveNew(RewriteInfo *info, List *targetlist, Node **nodePtr, { if (info->event == CMD_UPDATE) { - ((Var *) node)->varno = info->current_varno; - ((Var *) node)->varnoold = info->current_varno; + *nodePtr = n = copyObject(node); + ((Var *) n)->varno = info->current_varno; + ((Var *) n)->varnoold = info->current_varno; } else *nodePtr = make_null(((Var *) node)->vartype); } else - *nodePtr = n; + *nodePtr = copyObject(n); } break; }