diff options
author | Vadim B. Mikheev <vadim4o@yahoo.com> | 1998-11-27 19:52:36 +0000 |
---|---|---|
committer | Vadim B. Mikheev <vadim4o@yahoo.com> | 1998-11-27 19:52:36 +0000 |
commit | 6beba218d7f6f764e946751df6dc0d0180da05fa (patch) | |
tree | 2801029d61d798d6150bb43a24561a4615aedb8b /src/backend/executor/nodeGroup.c | |
parent | 2435c7d501b0a3129f6fc597a9c85863541cd596 (diff) | |
download | postgresql-6beba218d7f6f764e946751df6dc0d0180da05fa.tar.gz postgresql-6beba218d7f6f764e946751df6dc0d0180da05fa.zip |
New HeapTuple structure/interface.
Diffstat (limited to 'src/backend/executor/nodeGroup.c')
-rw-r--r-- | src/backend/executor/nodeGroup.c | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/src/backend/executor/nodeGroup.c b/src/backend/executor/nodeGroup.c index 1fdf6bedc32..54cf97ca3e1 100644 --- a/src/backend/executor/nodeGroup.c +++ b/src/backend/executor/nodeGroup.c @@ -13,7 +13,7 @@ * columns. (ie. tuples from the same group are consecutive) * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/nodeGroup.c,v 1.22 1998/09/01 04:28:28 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/nodeGroup.c,v 1.23 1998/11/27 19:52:01 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -102,13 +102,12 @@ ExecGroupEveryTuple(Group *node) else { outerslot = ExecProcNode(outerPlan(node), (Plan *) node); - if (outerslot) - outerTuple = outerslot->val; - if (!HeapTupleIsValid(outerTuple)) + if (TupIsNull(outerslot)) { grpstate->grp_done = TRUE; return NULL; } + outerTuple = outerslot->val; firsttuple = grpstate->grp_firstTuple; /* this should occur on the first call only */ @@ -121,7 +120,7 @@ ExecGroupEveryTuple(Group *node) * Compare with first tuple and see if this tuple is of the * same group. */ - if (!sameGroup(firsttuple, outerslot->val, + if (!sameGroup(firsttuple, outerTuple, node->numCols, node->grpColIdx, ExecGetScanType(&grpstate->csstate))) { @@ -189,14 +188,13 @@ ExecGroupOneTuple(Group *node) if (firsttuple == NULL) { outerslot = ExecProcNode(outerPlan(node), (Plan *) node); - if (outerslot) - outerTuple = outerslot->val; - if (!HeapTupleIsValid(outerTuple)) + if (TupIsNull(outerslot)) { grpstate->grp_done = TRUE; return NULL; } - grpstate->grp_firstTuple = firsttuple = heap_copytuple(outerTuple); + grpstate->grp_firstTuple = firsttuple = + heap_copytuple(outerslot->val); } /* @@ -205,19 +203,20 @@ ExecGroupOneTuple(Group *node) for (;;) { outerslot = ExecProcNode(outerPlan(node), (Plan *) node); - outerTuple = (outerslot) ? outerslot->val : NULL; - if (!HeapTupleIsValid(outerTuple)) + if (TupIsNull(outerslot)) { grpstate->grp_done = TRUE; + outerTuple = NULL; break; } + outerTuple = outerslot->val; /* ---------------- * Compare with first tuple and see if this tuple is of * the same group. * ---------------- */ - if ((!sameGroup(firsttuple, outerslot->val, + if ((!sameGroup(firsttuple, outerTuple, node->numCols, node->grpColIdx, ExecGetScanType(&grpstate->csstate)))) break; |