summaryrefslogtreecommitdiff
path: root/src/backend/executor/execAmi.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/executor/execAmi.c')
-rw-r--r--src/backend/executor/execAmi.c258
1 files changed, 0 insertions, 258 deletions
diff --git a/src/backend/executor/execAmi.c b/src/backend/executor/execAmi.c
deleted file mode 100644
index 7ceb7cd2c6f..00000000000
--- a/src/backend/executor/execAmi.c
+++ /dev/null
@@ -1,258 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * execAmi.c
- * miscellaneous executor access method routines
- *
- * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- * $Id: execAmi.c,v 1.64 2002/06/20 20:29:27 momjian Exp $
- *
- *-------------------------------------------------------------------------
- */
-#include "postgres.h"
-
-#include "access/genam.h"
-#include "access/heapam.h"
-#include "catalog/heap.h"
-#include "executor/execdebug.h"
-#include "executor/instrument.h"
-#include "executor/nodeAgg.h"
-#include "executor/nodeAppend.h"
-#include "executor/nodeGroup.h"
-#include "executor/nodeGroup.h"
-#include "executor/nodeHash.h"
-#include "executor/nodeHashjoin.h"
-#include "executor/nodeIndexscan.h"
-#include "executor/nodeTidscan.h"
-#include "executor/nodeLimit.h"
-#include "executor/nodeMaterial.h"
-#include "executor/nodeMergejoin.h"
-#include "executor/nodeNestloop.h"
-#include "executor/nodeResult.h"
-#include "executor/nodeSeqscan.h"
-#include "executor/nodeSetOp.h"
-#include "executor/nodeSort.h"
-#include "executor/nodeSubplan.h"
-#include "executor/nodeSubqueryscan.h"
-#include "executor/nodeFunctionscan.h"
-#include "executor/nodeUnique.h"
-
-
-/* ----------------------------------------------------------------
- * ExecReScan
- *
- * XXX this should be extended to cope with all the node types..
- *
- * takes the new expression context as an argument, so that
- * index scans needn't have their scan keys updated separately
- * - marcel 09/20/94
- * ----------------------------------------------------------------
- */
-void
-ExecReScan(Plan *node, ExprContext *exprCtxt, Plan *parent)
-{
- if (node->instrument)
- InstrEndLoop(node->instrument);
-
- if (node->chgParam != NULL) /* Wow! */
- {
- List *lst;
-
- foreach(lst, node->initPlan)
- {
- Plan *splan = ((SubPlan *) lfirst(lst))->plan;
-
- if (splan->extParam != NULL) /* don't care about child
- * locParam */
- SetChangedParamList(splan, node->chgParam);
- if (splan->chgParam != NULL)
- ExecReScanSetParamPlan((SubPlan *) lfirst(lst), node);
- }
- foreach(lst, node->subPlan)
- {
- Plan *splan = ((SubPlan *) lfirst(lst))->plan;
-
- if (splan->extParam != NULL)
- SetChangedParamList(splan, node->chgParam);
- }
- /* Well. Now set chgParam for left/right trees. */
- if (node->lefttree != NULL)
- SetChangedParamList(node->lefttree, node->chgParam);
- if (node->righttree != NULL)
- SetChangedParamList(node->righttree, node->chgParam);
- }
-
- switch (nodeTag(node))
- {
- case T_SeqScan:
- ExecSeqReScan((SeqScan *) node, exprCtxt, parent);
- break;
-
- case T_IndexScan:
- ExecIndexReScan((IndexScan *) node, exprCtxt, parent);
- break;
-
- case T_TidScan:
- ExecTidReScan((TidScan *) node, exprCtxt, parent);
- break;
-
- case T_SubqueryScan:
- ExecSubqueryReScan((SubqueryScan *) node, exprCtxt, parent);
- break;
-
- case T_FunctionScan:
- ExecFunctionReScan((FunctionScan *) node, exprCtxt, parent);
- break;
-
- case T_Material:
- ExecMaterialReScan((Material *) node, exprCtxt, parent);
- break;
-
- case T_NestLoop:
- ExecReScanNestLoop((NestLoop *) node, exprCtxt, parent);
- break;
-
- case T_HashJoin:
- ExecReScanHashJoin((HashJoin *) node, exprCtxt, parent);
- break;
-
- case T_Hash:
- ExecReScanHash((Hash *) node, exprCtxt, parent);
- break;
-
- case T_Agg:
- ExecReScanAgg((Agg *) node, exprCtxt, parent);
- break;
-
- case T_Group:
- ExecReScanGroup((Group *) node, exprCtxt, parent);
- break;
-
- case T_Result:
- ExecReScanResult((Result *) node, exprCtxt, parent);
- break;
-
- case T_Unique:
- ExecReScanUnique((Unique *) node, exprCtxt, parent);
- break;
-
- case T_SetOp:
- ExecReScanSetOp((SetOp *) node, exprCtxt, parent);
- break;
-
- case T_Limit:
- ExecReScanLimit((Limit *) node, exprCtxt, parent);
- break;
-
- case T_Sort:
- ExecReScanSort((Sort *) node, exprCtxt, parent);
- break;
-
- case T_MergeJoin:
- ExecReScanMergeJoin((MergeJoin *) node, exprCtxt, parent);
- break;
-
- case T_Append:
- ExecReScanAppend((Append *) node, exprCtxt, parent);
- break;
-
- default:
- elog(ERROR, "ExecReScan: node type %d not supported",
- nodeTag(node));
- return;
- }
-
- if (node->chgParam != NULL)
- {
- freeList(node->chgParam);
- node->chgParam = NULL;
- }
-}
-
-/* ----------------------------------------------------------------
- * ExecMarkPos
- *
- * Marks the current scan position.
- *
- * XXX Needs to be extended to include all the node types,
- * or at least all the ones that can be directly below a mergejoin.
- * ----------------------------------------------------------------
- */
-void
-ExecMarkPos(Plan *node)
-{
- switch (nodeTag(node))
- {
- case T_SeqScan:
- ExecSeqMarkPos((SeqScan *) node);
- break;
-
- case T_IndexScan:
- ExecIndexMarkPos((IndexScan *) node);
- break;
-
- case T_FunctionScan:
- ExecFunctionMarkPos((FunctionScan *) node);
- break;
-
- case T_Material:
- ExecMaterialMarkPos((Material *) node);
- break;
-
- case T_Sort:
- ExecSortMarkPos((Sort *) node);
- break;
-
- case T_TidScan:
- ExecTidMarkPos((TidScan *) node);
- break;
-
- default:
- /* don't make hard error unless caller asks to restore... */
- elog(LOG, "ExecMarkPos: node type %d not supported",
- nodeTag(node));
- break;
- }
-}
-
-/* ----------------------------------------------------------------
- * ExecRestrPos
- *
- * restores the scan position previously saved with ExecMarkPos()
- *
- * XXX Needs to be extended to include all the node types,
- * or at least all the ones that can be directly below a mergejoin.
- * ----------------------------------------------------------------
- */
-void
-ExecRestrPos(Plan *node)
-{
- switch (nodeTag(node))
- {
- case T_SeqScan:
- ExecSeqRestrPos((SeqScan *) node);
- break;
-
- case T_IndexScan:
- ExecIndexRestrPos((IndexScan *) node);
- break;
-
- case T_FunctionScan:
- ExecFunctionRestrPos((FunctionScan *) node);
- break;
-
- case T_Material:
- ExecMaterialRestrPos((Material *) node);
- break;
-
- case T_Sort:
- ExecSortRestrPos((Sort *) node);
- break;
-
- default:
- elog(ERROR, "ExecRestrPos: node type %d not supported",
- nodeTag(node));
- break;
- }
-}