66 *
77 * Copyright (c) 1994, Regents of the University of California
88 *
9- * $Id: executor.h,v 1.16 1997/11/26 03:54:23 momjian Exp $
9+ * $Id: executor.h,v 1.17 1998/01/14 15:48:43 momjian Exp $
1010 *
1111 *-------------------------------------------------------------------------
1212 */
2626/*
2727 * prototypes from functions in execAmi.c
2828 */
29- extern void
30- ExecOpenScanR (Oid relOid ,int nkeys ,ScanKey skeys ,bool isindex ,
29+ extern void ExecOpenScanR (Oid relOid ,int nkeys ,ScanKey skeys ,bool isindex ,
3130ScanDirection dir ,Relation * returnRelation ,
3231Pointer * returnScanDesc );
3332extern void ExecCloseR (Plan * node );
3433extern void ExecReScan (Plan * node ,ExprContext * exprCtxt ,Plan * parent );
35- extern HeapScanDesc
36- ExecReScanR (Relation relDesc ,HeapScanDesc scanDesc ,
34+ extern HeapScanDesc ExecReScanR (Relation relDesc ,HeapScanDesc scanDesc ,
3735ScanDirection direction ,int nkeys ,ScanKey skeys );
3836extern void ExecMarkPos (Plan * node );
3937extern void ExecRestrPos (Plan * node );
@@ -43,8 +41,7 @@ extern Relation ExecCreatR(TupleDesc tupType, Oid relationOid);
4341 * prototypes from functions in execJunk.c
4442 */
4543extern JunkFilter * ExecInitJunkFilter (List * targetList );
46- extern bool
47- ExecGetJunkAttribute (JunkFilter * junkfilter ,TupleTableSlot * slot ,
44+ extern bool ExecGetJunkAttribute (JunkFilter * junkfilter ,TupleTableSlot * slot ,
4845char * attrName ,Datum * value ,bool * isNull );
4946extern HeapTuple ExecRemoveJunk (JunkFilter * junkfilter ,TupleTableSlot * slot );
5047
@@ -71,20 +68,16 @@ extern void ExecEndNode(Plan *node, Plan *parent);
7168extern bool execConstByVal ;
7269extern int execConstLen ;
7370
74- extern Datum
75- ExecExtractResult (TupleTableSlot * slot ,AttrNumber attnum ,
71+ extern Datum ExecExtractResult (TupleTableSlot * slot ,AttrNumber attnum ,
7672bool * isNull );
77- extern Datum
78- ExecEvalParam (Param * expression ,ExprContext * econtext ,
73+ extern Datum ExecEvalParam (Param * expression ,ExprContext * econtext ,
7974bool * isNull );
8075
8176/* stop here */
8277extern char * GetAttributeByNum (TupleTableSlot * slot ,AttrNumber attrno ,
8378bool * isNull );
84- extern char *
85- GetAttributeByName (TupleTableSlot * slot ,char * attname ,bool * isNull );
86- extern Datum
87- ExecEvalExpr (Node * expression ,ExprContext * econtext ,bool * isNull ,
79+ extern char * GetAttributeByName (TupleTableSlot * slot ,char * attname ,bool * isNull );
80+ extern Datum ExecEvalExpr (Node * expression ,ExprContext * econtext ,bool * isNull ,
8881bool * isDone );
8982extern bool ExecQual (List * qual ,ExprContext * econtext );
9083extern int ExecTargetListLength (List * targetlist );
@@ -101,22 +94,19 @@ extern TupleTableSlot *ExecScan(Scan *node, TupleTableSlot *(*accessMtd) ());
10194extern TupleTable ExecCreateTupleTable (int initialSize );
10295extern void ExecDestroyTupleTable (TupleTable table ,bool shouldFree );
10396extern TupleTableSlot * ExecAllocTableSlot (TupleTable table );
104- extern TupleTableSlot *
105- ExecStoreTuple (HeapTuple tuple ,
97+ extern TupleTableSlot * ExecStoreTuple (HeapTuple tuple ,
10698TupleTableSlot * slot ,
10799Buffer buffer ,
108100bool shouldFree );
109101extern TupleTableSlot * ExecClearTuple (TupleTableSlot * slot );
110102extern bool ExecSetSlotPolicy (TupleTableSlot * slot ,bool shouldFree );
111- extern TupleDesc
112- ExecSetSlotDescriptor (TupleTableSlot * slot ,
103+ extern TupleDesc ExecSetSlotDescriptor (TupleTableSlot * slot ,
113104TupleDesc tupdesc );
114105extern void ExecSetSlotDescriptorIsNew (TupleTableSlot * slot ,bool isNew );
115106extern void ExecIncrSlotBufferRefcnt (TupleTableSlot * slot );
116107extern bool TupIsNull (TupleTableSlot * slot );
117108extern void ExecInitResultTupleSlot (EState * estate ,CommonState * commonstate );
118- extern void
119- ExecInitScanTupleSlot (EState * estate ,
109+ extern void ExecInitScanTupleSlot (EState * estate ,
120110CommonScanState * commonscanstate );
121111extern void ExecInitMarkedTupleSlot (EState * estate ,MergeJoinState * mergestate );
122112extern void ExecInitOuterTupleSlot (EState * estate ,HashJoinState * hashstate );
@@ -128,39 +118,31 @@ extern TupleDesc ExecTypeFromTL(List *targetList);
128118 * prototypes from functions in execTuples.c
129119 */
130120extern void ResetTupleCount (void );
131- extern void
132- ExecAssignNodeBaseInfo (EState * estate ,CommonState * basenode ,
121+ extern void ExecAssignNodeBaseInfo (EState * estate ,CommonState * basenode ,
133122Plan * parent );
134123extern void ExecAssignExprContext (EState * estate ,CommonState * commonstate );
135- extern void
136- ExecAssignResultType (CommonState * commonstate ,
124+ extern void ExecAssignResultType (CommonState * commonstate ,
137125TupleDesc tupDesc );
138- extern void
139- ExecAssignResultTypeFromOuterPlan (Plan * node ,
126+ extern void ExecAssignResultTypeFromOuterPlan (Plan * node ,
140127CommonState * commonstate );
141128extern void ExecAssignResultTypeFromTL (Plan * node ,CommonState * commonstate );
142129extern TupleDesc ExecGetResultType (CommonState * commonstate );
143130extern void ExecAssignProjectionInfo (Plan * node ,CommonState * commonstate );
144131extern void ExecFreeProjectionInfo (CommonState * commonstate );
145132extern TupleDesc ExecGetScanType (CommonScanState * csstate );
146- extern void
147- ExecAssignScanType (CommonScanState * csstate ,
133+ extern void ExecAssignScanType (CommonScanState * csstate ,
148134TupleDesc tupDesc );
149- extern void
150- ExecAssignScanTypeFromOuterPlan (Plan * node ,
135+ extern void ExecAssignScanTypeFromOuterPlan (Plan * node ,
151136CommonScanState * csstate );
152137extern AttributeTupleForm ExecGetTypeInfo (Relation relDesc );
153138
154- extern void
155- ExecOpenIndices (Oid resultRelationOid ,
139+ extern void ExecOpenIndices (Oid resultRelationOid ,
156140RelationInfo * resultRelationInfo );
157141extern void ExecCloseIndices (RelationInfo * resultRelationInfo );
158- extern void
159- ExecInsertIndexTuples (TupleTableSlot * slot ,ItemPointer tupleid ,
142+ extern void ExecInsertIndexTuples (TupleTableSlot * slot ,ItemPointer tupleid ,
160143EState * estate ,bool is_update );
161144extern void resetVarAttrLenForCreateTable (TupleDesc tupType );
162- extern void
163- setVarAttrLenForCreateTable (TupleDesc tupType ,
145+ extern void setVarAttrLenForCreateTable (TupleDesc tupType ,
164146List * targetList ,List * rangeTable );
165147
166148