OSDN Git Service

Patch for ReScan of Group.
authorBruce Momjian <bruce@momjian.us>
Thu, 16 Jul 1998 01:49:19 +0000 (01:49 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 16 Jul 1998 01:49:19 +0000 (01:49 +0000)
src/backend/executor/execAmi.c
src/backend/executor/nodeGroup.c
src/include/executor/nodeGroup.h

index 6fa29ac..2c99433 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/executor/execAmi.c,v 1.22 1998/07/15 22:16:17 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/executor/execAmi.c,v 1.23 1998/07/16 01:49:18 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "executor/nodeHashjoin.h"
 #include "executor/nodeHash.h"
 #include "executor/nodeAgg.h"
+#include "executor/nodeGroup.h"
 #include "executor/nodeResult.h"
 #include "executor/nodeUnique.h"
 #include "executor/nodeMergejoin.h"
+#include "executor/nodeAppend.h"
 #include "executor/nodeSubplan.h"
 #include "executor/execdebug.h"
 #include "optimizer/internal.h" /* for _TEMP_RELATION_ID_ */
@@ -353,6 +355,10 @@ ExecReScan(Plan *node, ExprContext *exprCtxt, Plan *parent)
                        ExecReScanAgg((Agg *) node, exprCtxt, parent);
                        break;
 
+               case T_Group:
+                       ExecReScanGroup((Group *) node, exprCtxt, parent);
+                       break;
+
                case T_Result:
                        ExecReScanResult((Result *) node, exprCtxt, parent);
                        break;
index 4ba1aea..8ea2174 100644 (file)
@@ -13,7 +13,7 @@
  *       columns. (ie. tuples from the same group are consecutive)
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/executor/nodeGroup.c,v 1.19 1998/06/15 19:28:21 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/executor/nodeGroup.c,v 1.20 1998/07/16 01:49:18 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -417,3 +417,12 @@ sameGroup(HeapTuple oldtuple,
 
        return TRUE;
 }
+
+void
+ExecReScanGroup(Group *node, ExprContext *exprCtxt, Plan *parent)
+{
+       GroupState *grpstate = node->grpstate;
+
+       grpstate->grp_useFirstTuple = FALSE;
+       grpstate->grp_done = FALSE;
+}
index 97ded95..4449a09 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Copyright (c) 1994, Regents of the University of California
  *
- * $Id: nodeGroup.h,v 1.5 1997/11/26 01:12:46 momjian Exp $
+ * $Id: nodeGroup.h,v 1.6 1998/07/16 01:49:19 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -21,5 +21,6 @@ extern TupleTableSlot *ExecGroup(Group *node);
 extern bool ExecInitGroup(Group *node, EState *estate, Plan *parent);
 extern int     ExecCountSlotsGroup(Group *node);
 extern void ExecEndGroup(Group *node);
+extern void ExecReScanGroup(Group *node, ExprContext *exprCtxt, Plan *parent);
 
 #endif                                                 /* NODEGROUP_H */