1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-07 19:06:32 +03:00

Fix oversight in planning of GROUP queries: when an expression is used

as both a GROUP BY item and an output expression, the top-level Group
node should just copy up the evaluated expression value from its input,
rather than re-evaluating the expression.  Aside from any performance
benefit this might offer, this avoids a crash when there is a sub-SELECT
in said expression.
This commit is contained in:
Tom Lane
2001-01-09 03:48:51 +00:00
parent 4cb0950cfe
commit 07c741e61c
4 changed files with 67 additions and 12 deletions

View File

@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/optimizer/util/tlist.c,v 1.47 2000/08/08 15:41:53 tgl Exp $
* $Header: /cvsroot/pgsql/src/backend/optimizer/util/tlist.c,v 1.48 2001/01/09 03:48:50 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -18,7 +18,6 @@
#include "optimizer/tlist.h"
#include "optimizer/var.h"
static TargetEntry *tlistentry_member(Node *node, List *targetlist);
/*****************************************************************************
* ---------- RELATION node target list routines ----------
@@ -29,7 +28,7 @@ static TargetEntry *tlistentry_member(Node *node, List *targetlist);
* Finds the (first) member of the given tlist whose expression is
* equal() to the given expression. Result is NULL if no such member.
*/
static TargetEntry *
TargetEntry *
tlistentry_member(Node *node, List *targetlist)
{
List *temp;