diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2004-01-05 18:04:39 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2004-01-05 18:04:39 +0000 |
commit | 5c74ce23db52ec862b9f35cfa5f6b327820dda47 (patch) | |
tree | 4fc58b16fa517e704b76c89eed4f451a2de6c2a4 /src/backend/optimizer/plan/createplan.c | |
parent | cce442da6d6c047b9b86133eb449d3cfbb0fa713 (diff) | |
download | postgresql-5c74ce23db52ec862b9f35cfa5f6b327820dda47.tar.gz postgresql-5c74ce23db52ec862b9f35cfa5f6b327820dda47.zip |
Improve UniquePath logic to detect the case where the input is already
known unique (eg, it is a SELECT DISTINCT ... subquery), and not do a
redundant unique-ification step.
Diffstat (limited to 'src/backend/optimizer/plan/createplan.c')
-rw-r--r-- | src/backend/optimizer/plan/createplan.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/backend/optimizer/plan/createplan.c b/src/backend/optimizer/plan/createplan.c index d20b967b05c..ace9029ce68 100644 --- a/src/backend/optimizer/plan/createplan.c +++ b/src/backend/optimizer/plan/createplan.c @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/optimizer/plan/createplan.c,v 1.162 2004/01/05 05:07:35 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/optimizer/plan/createplan.c,v 1.163 2004/01/05 18:04:38 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -605,10 +605,14 @@ create_unique_plan(Query *root, UniquePath *best_path) subplan->targetlist = newtlist; } + /* Done if we don't need to do any actual unique-ifying */ + if (best_path->umethod == UNIQUE_PATH_NOOP) + return subplan; + /* Copy tlist again to make one we can put sorting labels on */ my_tlist = copyObject(subplan->targetlist); - if (best_path->use_hash) + if (best_path->umethod == UNIQUE_PATH_HASH) { long numGroups; |