aboutsummaryrefslogtreecommitdiff
path: root/src/backend/optimizer/plan/planner.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/optimizer/plan/planner.c')
-rw-r--r--src/backend/optimizer/plan/planner.c24
1 files changed, 6 insertions, 18 deletions
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c
index 0b711f32099..28483fd4734 100644
--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planner.c,v 1.73 2000/01/26 05:56:37 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planner.c,v 1.74 2000/01/27 18:11:31 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -381,12 +381,12 @@ union_planner(Query *parse)
}
/*
- * Finally, if there is a UNIQUE clause, add the UNIQUE node.
+ * Finally, if there is a DISTINCT clause, add the UNIQUE node.
*/
- if (parse->uniqueFlag)
+ if (parse->distinctClause)
{
result_plan = (Plan *) make_unique(tlist, result_plan,
- parse->uniqueFlag);
+ parse->distinctClause);
}
return result_plan;
@@ -583,20 +583,8 @@ make_sortplan(List *tlist, List *sortcls, Plan *plannode)
foreach(i, sortcls)
{
SortClause *sortcl = (SortClause *) lfirst(i);
- Index refnumber = sortcl->tleSortGroupRef;
- TargetEntry *tle = NULL;
- Resdom *resdom;
- List *l;
-
- foreach(l, temp_tlist)
- {
- tle = (TargetEntry *) lfirst(l);
- if (tle->resdom->ressortgroupref == refnumber)
- break;
- }
- if (l == NIL)
- elog(ERROR, "make_sortplan: ORDER BY expression not found in targetlist");
- resdom = tle->resdom;
+ TargetEntry *tle = get_sortgroupclause_tle(sortcl, temp_tlist);
+ Resdom *resdom = tle->resdom;
/*
* Check for the possibility of duplicate order-by clauses --- the