diff --git a/src/backend/optimizer/plan/setrefs.c b/src/backend/optimizer/plan/setrefs.c index a983aa32143d41e1b1b5c55e28ee69e430a630c2..051c2ea3e3d97e4b6b34542cc57bd665c3caa2b0 100644 --- a/src/backend/optimizer/plan/setrefs.c +++ b/src/backend/optimizer/plan/setrefs.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/setrefs.c,v 1.57 1999/08/22 20:14:48 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/setrefs.c,v 1.58 1999/10/30 23:07:55 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -110,8 +110,13 @@ set_plan_references(Plan *plan) set_uppernode_references(plan, (Index) 0); break; case T_Result: - /* XXX why does Result use a different subvarno? */ - set_uppernode_references(plan, (Index) OUTER); + /* Result may or may not have a subplan; no need to fix up + * subplan references if it hasn't got one... + * + * XXX why does Result use a different subvarno from Agg/Group? + */ + if (plan->lefttree != NULL) + set_uppernode_references(plan, (Index) OUTER); fix_opids(((Result *) plan)->resconstantqual); break; case T_Append: