From: Bruce Momjian Date: Fri, 11 Sep 1998 16:39:59 +0000 (+0000) Subject: Tatsuo Ishii fix for pg_user crash, with slight modification. X-Git-Tag: REL6_4_2~443 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=13b6f724c188a07213739ef5f499eb8b8a858441;p=postgresql Tatsuo Ishii fix for pg_user crash, with slight modification. --- diff --git a/src/backend/rewrite/rewriteManip.c b/src/backend/rewrite/rewriteManip.c index 14e1c79656..15c68064a6 100644 --- a/src/backend/rewrite/rewriteManip.c +++ b/src/backend/rewrite/rewriteManip.c @@ -6,7 +6,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteManip.c,v 1.17 1998/09/01 04:31:35 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteManip.c,v 1.18 1998/09/11 16:39:59 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -614,9 +614,8 @@ nodeHandleViewRule(Node **nodePtr, var->varattno)); if (n == NULL) *nodePtr = make_null(((Var *) node)->vartype); - else - + { /* * This is a hack: The varlevelsup of the orignal * variable and the new one should be the same. @@ -628,12 +627,16 @@ nodeHandleViewRule(Node **nodePtr, * before! (Maybe this will cause troubles with * some sophisticated queries on views?) */ - { if (this_varlevelsup > 0) *nodePtr = copyObject(n); else *nodePtr = n; - ((Var *) *nodePtr)->varlevelsup = this_varlevelsup; + + if (nodeTag(nodePtr) == T_Var) + ((Var *) *nodePtr)->varlevelsup = this_varlevelsup; + else + nodeHandleViewRule(&n, rtable, targetlist, + rt_index, modified, sublevels_up); } *modified = TRUE; }