diff options
Diffstat (limited to 'src/backend/executor')
-rw-r--r-- | src/backend/executor/nodeAgg.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/backend/executor/nodeAgg.c b/src/backend/executor/nodeAgg.c index 00bd21ba6f2..9bcff0f8dfe 100644 --- a/src/backend/executor/nodeAgg.c +++ b/src/backend/executor/nodeAgg.c @@ -61,7 +61,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/executor/nodeAgg.c,v 1.158 2008/05/12 00:00:49 alvherre Exp $ + * $PostgreSQL: pgsql/src/backend/executor/nodeAgg.c,v 1.159 2008/08/02 21:31:59 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1496,7 +1496,8 @@ ExecInitAgg(Agg *node, EState *estate, int eflags) if (aggref->aggdistinct) { - Oid eq_function; + Oid lt_opr; + Oid eq_opr; /* We don't implement DISTINCT aggs in the HASHED case */ Assert(node->aggstrategy != AGG_HASHED); @@ -1524,9 +1525,11 @@ ExecInitAgg(Agg *node, EState *estate, int eflags) * record it in the Aggref node ... or at latest, do it in the * planner. */ - eq_function = equality_oper_funcid(inputTypes[0]); - fmgr_info(eq_function, &(peraggstate->equalfn)); - peraggstate->sortOperator = ordering_oper_opid(inputTypes[0]); + get_sort_group_operators(inputTypes[0], + true, true, false, + <_opr, &eq_opr, NULL); + fmgr_info(get_opcode(eq_opr), &(peraggstate->equalfn)); + peraggstate->sortOperator = lt_opr; peraggstate->sortstate = NULL; } |