Skip to content

Commit c42f7f1

Browse files
committed
Fix GROUP BY when order of entries is different from order in target list.
1 parent bb0cc20 commit c42f7f1

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

src/backend/optimizer/plan/planmain.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planmain.c,v 1.7 1997/09/08 21:45:24 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planmain.c,v 1.8 1997/09/25 12:21:15 vadim Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -394,7 +394,6 @@ make_groupPlan(List **tlist,
394394
Group *grpplan;
395395
int numCols;
396396
AttrNumber *grpColIdx;
397-
int keyno = 1;
398397
int last_resno = 1;
399398

400399
numCols = length(groupClause);
@@ -412,13 +411,15 @@ make_groupPlan(List **tlist,
412411
*/
413412
foreach(sl, sort_tlist)
414413
{
415-
Resdom *resdom = NULL;
416-
TargetEntry *te = (TargetEntry *) lfirst(sl);
414+
Resdom *resdom = NULL;
415+
TargetEntry *te = (TargetEntry *) lfirst(sl);
416+
int keyno = 0;
417417

418-
foreach(gl, glc)
418+
foreach(gl, groupClause)
419419
{
420420
GroupClause *grpcl = (GroupClause *) lfirst(gl);
421421

422+
keyno++;
422423
if (grpcl->entry->resdom->resno == te->resdom->resno)
423424
{
424425

@@ -427,7 +428,6 @@ make_groupPlan(List **tlist,
427428
resdom->reskeyop = get_opcode(grpcl->grpOpoid);
428429
resdom->resno = last_resno; /* re-set */
429430
grpColIdx[keyno - 1] = last_resno++;
430-
keyno++;
431431
glc = lremove(lfirst(gl), glc); /* TLE found for it */
432432
break;
433433
}

0 commit comments

Comments
 (0)