aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/execProcnode.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2003-05-05 17:57:47 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2003-05-05 17:57:47 +0000
commit94a3c60324465f98850b60f548c1ea481ab4e52f (patch)
treeef5eef6fef67ab7423a30c8aa6c1560946303859 /src/backend/executor/execProcnode.c
parent20aea2ec7b278e664e420172160073ccc2ad24ad (diff)
downloadpostgresql-94a3c60324465f98850b60f548c1ea481ab4e52f.tar.gz
postgresql-94a3c60324465f98850b60f548c1ea481ab4e52f.zip
Ditch ExecGetTupType() in favor of the much simpler ExecGetResultType(),
which does the same thing. Perhaps at one time there was a reason to allow plan nodes to store their result types in different places, but AFAICT that's been unnecessary for a good while.
Diffstat (limited to 'src/backend/executor/execProcnode.c')
-rw-r--r--src/backend/executor/execProcnode.c181
1 files changed, 1 insertions, 180 deletions
diff --git a/src/backend/executor/execProcnode.c b/src/backend/executor/execProcnode.c
index 8d2bc0f8bd9..f8dbb019c5d 100644
--- a/src/backend/executor/execProcnode.c
+++ b/src/backend/executor/execProcnode.c
@@ -12,7 +12,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/executor/execProcnode.c,v 1.35 2003/02/09 00:30:39 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/executor/execProcnode.c,v 1.36 2003/05/05 17:57:47 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -22,7 +22,6 @@
* ExecInitNode - initialize a plan node and its subplans
* ExecProcNode - get a tuple by executing the plan node
* ExecEndNode - shut down a plan node and its subplans
- * ExecGetTupType - get result tuple type of a plan node
*
* NOTES
* This used to be three files. It is now all combined into
@@ -602,181 +601,3 @@ ExecEndNode(PlanState *node)
break;
}
}
-
-
-/* ----------------------------------------------------------------
- * ExecGetTupType
- *
- * this gives you the tuple descriptor for tuples returned
- * by this node. I really wish I could ditch this routine,
- * but since not all nodes store their type info in the same
- * place, we have to do something special for each node type.
- *
- * ----------------------------------------------------------------
- */
-TupleDesc
-ExecGetTupType(PlanState *node)
-{
- TupleTableSlot *slot;
-
- if (node == NULL)
- return NULL;
-
- switch (nodeTag(node))
- {
- case T_ResultState:
- {
- ResultState *resstate = (ResultState *) node;
-
- slot = resstate->ps.ps_ResultTupleSlot;
- }
- break;
-
- case T_AppendState:
- {
- AppendState *appendstate = (AppendState *) node;
-
- slot = appendstate->ps.ps_ResultTupleSlot;
- }
- break;
-
- case T_SeqScanState:
- {
- SeqScanState *scanstate = (SeqScanState *) node;
-
- slot = scanstate->ps.ps_ResultTupleSlot;
- }
- break;
-
- case T_IndexScanState:
- {
- IndexScanState *scanstate = (IndexScanState *) node;
-
- slot = scanstate->ss.ps.ps_ResultTupleSlot;
- }
- break;
-
- case T_TidScanState:
- {
- TidScanState *scanstate = (TidScanState *) node;
-
- slot = scanstate->ss.ps.ps_ResultTupleSlot;
- }
- break;
-
- case T_SubqueryScanState:
- {
- SubqueryScanState *scanstate = (SubqueryScanState *) node;
-
- slot = scanstate->ss.ps.ps_ResultTupleSlot;
- }
- break;
-
- case T_FunctionScanState:
- {
- FunctionScanState *scanstate = (FunctionScanState *) node;
-
- slot = scanstate->ss.ps.ps_ResultTupleSlot;
- }
- break;
-
- case T_NestLoopState:
- {
- NestLoopState *nlstate = (NestLoopState *) node;
-
- slot = nlstate->js.ps.ps_ResultTupleSlot;
- }
- break;
-
- case T_MergeJoinState:
- {
- MergeJoinState *mergestate = (MergeJoinState *) node;
-
- slot = mergestate->js.ps.ps_ResultTupleSlot;
- }
- break;
-
- case T_HashJoinState:
- {
- HashJoinState *hashjoinstate = (HashJoinState *) node;
-
- slot = hashjoinstate->js.ps.ps_ResultTupleSlot;
- }
- break;
-
- case T_MaterialState:
- {
- MaterialState *matstate = (MaterialState *) node;
-
- slot = matstate->ss.ss_ScanTupleSlot;
- }
- break;
-
- case T_SortState:
- {
- SortState *sortstate = (SortState *) node;
-
- slot = sortstate->ss.ss_ScanTupleSlot;
- }
- break;
-
- case T_GroupState:
- {
- GroupState *grpstate = (GroupState *) node;
-
- slot = grpstate->ss.ps.ps_ResultTupleSlot;
- }
- break;
-
- case T_AggState:
- {
- AggState *aggstate = (AggState *) node;
-
- slot = aggstate->ss.ps.ps_ResultTupleSlot;
- }
- break;
-
- case T_UniqueState:
- {
- UniqueState *uniquestate = (UniqueState *) node;
-
- slot = uniquestate->ps.ps_ResultTupleSlot;
- }
- break;
-
- case T_HashState:
- {
- HashState *hashstate = (HashState *) node;
-
- slot = hashstate->ps.ps_ResultTupleSlot;
- }
- break;
-
- case T_SetOpState:
- {
- SetOpState *setopstate = (SetOpState *) node;
-
- slot = setopstate->ps.ps_ResultTupleSlot;
- }
- break;
-
- case T_LimitState:
- {
- LimitState *limitstate = (LimitState *) node;
-
- slot = limitstate->ps.ps_ResultTupleSlot;
- }
- break;
-
- default:
-
- /*
- * should never get here
- */
- elog(ERROR, "ExecGetTupType: node type %d unsupported",
- (int) nodeTag(node));
- return NULL;
- }
-
- return slot->ttc_tupleDescriptor;
-}