diff options
| author | Jan Wieck | 1999-05-12 15:02:39 +0000 |
|---|---|---|
| committer | Jan Wieck | 1999-05-12 15:02:39 +0000 |
| commit | 79c2576f775b962c67cac136722c5c7cc98201aa (patch) | |
| tree | 3da66174208ed6b258542dde2ba9f00c0e706c07 /src/backend/nodes | |
| parent | 1a87c14c9cf2c58009dd653c5356f68d605dff2f (diff) | |
Replaced targetlist entry in GroupClause by reference number
in Resdom and GroupClause so changing of resno's doesn't confuse
the grouping any more.
Jan
Diffstat (limited to 'src/backend/nodes')
| -rw-r--r-- | src/backend/nodes/copyfuncs.c | 5 | ||||
| -rw-r--r-- | src/backend/nodes/equalfuncs.c | 4 | ||||
| -rw-r--r-- | src/backend/nodes/freefuncs.c | 4 | ||||
| -rw-r--r-- | src/backend/nodes/makefuncs.c | 3 | ||||
| -rw-r--r-- | src/backend/nodes/outfuncs.c | 18 | ||||
| -rw-r--r-- | src/backend/nodes/readfuncs.c | 13 |
6 files changed, 28 insertions, 19 deletions
diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c index 2ff8d499e82..be70ef33fdf 100644 --- a/src/backend/nodes/copyfuncs.c +++ b/src/backend/nodes/copyfuncs.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.78 1999/04/27 09:49:36 ishii Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/copyfuncs.c,v 1.79 1999/05/12 15:01:31 wieck Exp $ * *------------------------------------------------------------------------- */ @@ -487,8 +487,8 @@ _copyGroupClause(GroupClause *from) { GroupClause *newnode = makeNode(GroupClause); - Node_Copy(from, newnode, entry); newnode->grpOpoid = from->grpOpoid; + newnode->tleGroupref = from->tleGroupref; return newnode; } @@ -589,6 +589,7 @@ _copyResdom(Resdom *from) newnode->resname = pstrdup(from->resname); newnode->reskey = from->reskey; newnode->reskeyop = from->reskeyop; + newnode->resgroupref = from->resgroupref; newnode->resjunk = from->resjunk; return newnode; diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c index a5d40ef399d..45e752f5028 100644 --- a/src/backend/nodes/equalfuncs.c +++ b/src/backend/nodes/equalfuncs.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.35 1999/02/18 00:49:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/equalfuncs.c,v 1.36 1999/05/12 15:01:33 wieck Exp $ * *------------------------------------------------------------------------- */ @@ -48,6 +48,8 @@ _equalResdom(Resdom *a, Resdom *b) return false; if (a->reskey != b->reskey) return false; + if (a->resgroupref != b->resgroupref) + return false; if (a->reskeyop != b->reskeyop) return false; diff --git a/src/backend/nodes/freefuncs.c b/src/backend/nodes/freefuncs.c index c41c5fb4318..3c95dcbe225 100644 --- a/src/backend/nodes/freefuncs.c +++ b/src/backend/nodes/freefuncs.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/Attic/freefuncs.c,v 1.15 1999/03/01 00:10:31 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/Attic/freefuncs.c,v 1.16 1999/05/12 15:01:33 wieck Exp $ * *------------------------------------------------------------------------- */ @@ -396,8 +396,6 @@ _freeAgg(Agg *node) static void _freeGroupClause(GroupClause *node) { - freeObject(node->entry); - pfree(node); } diff --git a/src/backend/nodes/makefuncs.c b/src/backend/nodes/makefuncs.c index efad14195a9..fdf689a326e 100644 --- a/src/backend/nodes/makefuncs.c +++ b/src/backend/nodes/makefuncs.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/makefuncs.c,v 1.13 1999/02/13 23:15:58 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/makefuncs.c,v 1.14 1999/05/12 15:01:34 wieck Exp $ * * NOTES * Creator functions in POSTGRES 4.2 are generated automatically. Most of @@ -107,6 +107,7 @@ makeResdom(AttrNumber resno, resdom->resname = resname; resdom->reskey = reskey; resdom->reskeyop = reskeyop; + resdom->resgroupref = 0; resdom->resjunk = resjunk; return resdom; } diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index 07ea3d868a8..c0df063ea06 100644 --- a/src/backend/nodes/outfuncs.c +++ b/src/backend/nodes/outfuncs.c @@ -5,7 +5,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: outfuncs.c,v 1.80 1999/05/10 00:45:10 momjian Exp $ + * $Id: outfuncs.c,v 1.81 1999/05/12 15:01:34 wieck Exp $ * * NOTES * Every (plan) node in POSTGRES has an associated "out" routine which @@ -255,10 +255,9 @@ _outSortClause(StringInfo str, SortClause *node) static void _outGroupClause(StringInfo str, GroupClause *node) { - appendStringInfo(str, " GROUPCLAUSE :entry "); - _outNode(str, node->entry); - - appendStringInfo(str, " :grpOpoid %u ", node->grpOpoid); + appendStringInfo(str, " GROUPCLAUSE :grpOpoid %u :tleGroupref %d", + node->grpOpoid, + node->tleGroupref); } /* @@ -556,15 +555,18 @@ _outHash(StringInfo str, Hash *node) static void _outResdom(StringInfo str, Resdom *node) { - appendStringInfo(str, " RESDOM :resno %d :restype %u :restypmod %d ", + appendStringInfo(str, " RESDOM :resno %d :restype %u :restypmod %d", node->resno, node->restype, node->restypmod); - appendStringInfo(str, " :resname \"%s\" :reskey %d :reskeyop %u :resjunk %d", + appendStringInfo(str, " :resname \"%s\" :reskey %d :reskeyop %u", stringStringInfo(node->resname), node->reskey, - node->reskeyop, + node->reskeyop); + + appendStringInfo(str, " :resgroupref %d :resjunk %d", + node->resgroupref, node->resjunk); } diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c index 3e1dca5a345..0aa0b275fa9 100644 --- a/src/backend/nodes/readfuncs.c +++ b/src/backend/nodes/readfuncs.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.60 1999/03/01 00:10:31 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/readfuncs.c,v 1.61 1999/05/12 15:01:35 wieck Exp $ * * NOTES * Most of the read functions for plan nodes are tested. (In fact, they @@ -221,13 +221,14 @@ _readGroupClause() local_node = makeNode(GroupClause); - token = lsptok(NULL, &length); /* skip the :entry */ - local_node->entry = nodeRead(true); - token = lsptok(NULL, &length); /* skip :grpOpoid */ token = lsptok(NULL, &length); /* get grpOpoid */ local_node->grpOpoid = strtoul(token, NULL, 10); + token = lsptok(NULL, &length); /* skip :tleGroupref */ + token = lsptok(NULL, &length); /* get tleGroupref */ + local_node->tleGroupref = strtoul(token, NULL, 10); + return local_node; } @@ -744,6 +745,10 @@ _readResdom() token = lsptok(NULL, &length); /* get reskeyop */ local_node->reskeyop = (Oid) atol(token); + token = lsptok(NULL, &length); /* eat :resgroupref */ + token = lsptok(NULL, &length); /* get resgroupref */ + local_node->resgroupref = strtoul(token, NULL, 10); + token = lsptok(NULL, &length); /* eat :resjunk */ token = lsptok(NULL, &length); /* get resjunk */ local_node->resjunk = atoi(token); |
