From 57ea2084773aa1749b1afa6fcb34e5d8055923cf Mon Sep 17 00:00:00 2001 From: Tom Lane <tgl@sss.pgh.pa.us> Date: Sat, 30 Oct 1999 23:07:55 +0000 Subject: [PATCH] Skip invoking set_uppernode_references() for a RESULT node that has no subplan --- saves a material amount of time for a simple INSERT ... VALUES query. --- src/backend/optimizer/plan/setrefs.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/backend/optimizer/plan/setrefs.c b/src/backend/optimizer/plan/setrefs.c index a983aa32143..051c2ea3e3d 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: -- GitLab