Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 13b6f72

Browse files
committed
Tatsuo Ishii fix for pg_user crash, with slight modification.
1 parent a752e32 commit 13b6f72

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/backend/rewrite/rewriteManip.c

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*
77
*
88
* IDENTIFICATION
9-
* $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteManip.c,v 1.17 1998/09/01 04:31:35 momjian Exp $
9+
* $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteManip.c,v 1.18 1998/09/11 16:39:59 momjian Exp $
1010
*
1111
*-------------------------------------------------------------------------
1212
*/
@@ -614,9 +614,8 @@ nodeHandleViewRule(Node **nodePtr,
614614
var->varattno));
615615
if (n == NULL)
616616
*nodePtr = make_null(((Var *) node)->vartype);
617-
618617
else
619-
618+
{
620619
/*
621620
* This is a hack: The varlevelsup of the orignal
622621
* variable and the new one should be the same.
@@ -628,12 +627,16 @@ nodeHandleViewRule(Node **nodePtr,
628627
* before! (Maybe this will cause troubles with
629628
* some sophisticated queries on views?)
630629
*/
631-
{
632630
if (this_varlevelsup > 0)
633631
*nodePtr = copyObject(n);
634632
else
635633
*nodePtr = n;
636-
((Var *) *nodePtr)->varlevelsup = this_varlevelsup;
634+
635+
if (nodeTag(nodePtr) == T_Var)
636+
((Var *) *nodePtr)->varlevelsup = this_varlevelsup;
637+
else
638+
nodeHandleViewRule(&n, rtable, targetlist,
639+
rt_index, modified, sublevels_up);
637640
}
638641
*modified = TRUE;
639642
}

0 commit comments

Comments
 (0)