From 1a105cefbd4769a1ef857f94a71faed6cb76717b Mon Sep 17 00:00:00 2001 From: "Vadim B. Mikheev" Date: Fri, 13 Feb 1998 03:26:53 +0000 Subject: Support for subselects. ExecReScan for nodeAgg, nodeHash, nodeHashjoin, nodeNestloop and nodeResult. Fixed ExecReScan for nodeMaterial. Get rid of #ifdef INDEXSCAN_PATCH. Get rid of ExecMarkPos and ExecRestrPos in nodeNestloop. --- src/backend/executor/nodeHash.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'src/backend/executor/nodeHash.c') diff --git a/src/backend/executor/nodeHash.c b/src/backend/executor/nodeHash.c index 031d718250d..5ebf508c0c0 100644 --- a/src/backend/executor/nodeHash.c +++ b/src/backend/executor/nodeHash.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/nodeHash.c,v 1.18 1998/02/11 19:10:28 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/nodeHash.c,v 1.19 1998/02/13 03:26:46 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -890,3 +890,23 @@ mk_hj_temp(char *tempname) sprintf(tempname, "HJ%d.%d", (int) MyProcPid, hjtmpcnt); hjtmpcnt = (hjtmpcnt + 1) % 1000; } + +void +ExecReScanHash(Hash *node, ExprContext *exprCtxt, Plan *parent) +{ + HashState *hashstate = node->hashstate; + + if (hashstate->hashBatches != NULL) + { + pfree(hashstate->hashBatches); + hashstate->hashBatches = NULL; + } + + /* + * if chgParam of subnode is not null then plan + * will be re-scanned by first ExecProcNode. + */ + if (((Plan*) node)->lefttree->chgParam == NULL) + ExecReScan (((Plan*) node)->lefttree, exprCtxt, (Plan *) node); + +} -- cgit v1.2.3