diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 1999-10-30 23:07:55 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 1999-10-30 23:07:55 +0000 |
commit | 57ea2084773aa1749b1afa6fcb34e5d8055923cf (patch) | |
tree | 108db94a8408970229bf0252dc0735353a428841 | |
parent | e2a29eb52ce2fff7983cacfe26e099f758d235fa (diff) | |
download | postgresql-57ea2084773aa1749b1afa6fcb34e5d8055923cf.tar.gz postgresql-57ea2084773aa1749b1afa6fcb34e5d8055923cf.zip |
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.
-rw-r--r-- | src/backend/optimizer/plan/setrefs.c | 11 |
1 files 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: |