|
|
|
|
@ -6,7 +6,7 @@ |
|
|
|
|
* |
|
|
|
|
* Copyright (c) 1994, Regents of the University of California |
|
|
|
|
* |
|
|
|
|
* $Id: executor.h,v 1.16 1997/11/26 03:54:23 momjian Exp $ |
|
|
|
|
* $Id: executor.h,v 1.17 1998/01/14 15:48:43 momjian Exp $ |
|
|
|
|
* |
|
|
|
|
*------------------------------------------------------------------------- |
|
|
|
|
*/ |
|
|
|
|
@ -26,14 +26,12 @@ |
|
|
|
|
/*
|
|
|
|
|
* prototypes from functions in execAmi.c |
|
|
|
|
*/ |
|
|
|
|
extern void |
|
|
|
|
ExecOpenScanR(Oid relOid, int nkeys, ScanKey skeys, bool isindex, |
|
|
|
|
extern void ExecOpenScanR(Oid relOid, int nkeys, ScanKey skeys, bool isindex, |
|
|
|
|
ScanDirection dir, Relation *returnRelation, |
|
|
|
|
Pointer *returnScanDesc); |
|
|
|
|
extern void ExecCloseR(Plan *node); |
|
|
|
|
extern void ExecReScan(Plan *node, ExprContext *exprCtxt, Plan *parent); |
|
|
|
|
extern HeapScanDesc |
|
|
|
|
ExecReScanR(Relation relDesc, HeapScanDesc scanDesc, |
|
|
|
|
extern HeapScanDesc ExecReScanR(Relation relDesc, HeapScanDesc scanDesc, |
|
|
|
|
ScanDirection direction, int nkeys, ScanKey skeys); |
|
|
|
|
extern void ExecMarkPos(Plan *node); |
|
|
|
|
extern void ExecRestrPos(Plan *node); |
|
|
|
|
@ -43,8 +41,7 @@ extern Relation ExecCreatR(TupleDesc tupType, Oid relationOid); |
|
|
|
|
* prototypes from functions in execJunk.c |
|
|
|
|
*/ |
|
|
|
|
extern JunkFilter *ExecInitJunkFilter(List *targetList); |
|
|
|
|
extern bool |
|
|
|
|
ExecGetJunkAttribute(JunkFilter *junkfilter, TupleTableSlot *slot, |
|
|
|
|
extern bool ExecGetJunkAttribute(JunkFilter *junkfilter, TupleTableSlot *slot, |
|
|
|
|
char *attrName, Datum *value, bool *isNull); |
|
|
|
|
extern HeapTuple ExecRemoveJunk(JunkFilter *junkfilter, TupleTableSlot *slot); |
|
|
|
|
|
|
|
|
|
@ -71,20 +68,16 @@ extern void ExecEndNode(Plan *node, Plan *parent); |
|
|
|
|
extern bool execConstByVal; |
|
|
|
|
extern int execConstLen; |
|
|
|
|
|
|
|
|
|
extern Datum |
|
|
|
|
ExecExtractResult(TupleTableSlot *slot, AttrNumber attnum, |
|
|
|
|
extern Datum ExecExtractResult(TupleTableSlot *slot, AttrNumber attnum, |
|
|
|
|
bool *isNull); |
|
|
|
|
extern Datum |
|
|
|
|
ExecEvalParam(Param *expression, ExprContext *econtext, |
|
|
|
|
extern Datum ExecEvalParam(Param *expression, ExprContext *econtext, |
|
|
|
|
bool *isNull); |
|
|
|
|
|
|
|
|
|
/* stop here */ |
|
|
|
|
extern char *GetAttributeByNum(TupleTableSlot *slot, AttrNumber attrno, |
|
|
|
|
bool *isNull); |
|
|
|
|
extern char * |
|
|
|
|
GetAttributeByName(TupleTableSlot *slot, char *attname, bool *isNull); |
|
|
|
|
extern Datum |
|
|
|
|
ExecEvalExpr(Node *expression, ExprContext *econtext, bool *isNull, |
|
|
|
|
extern char *GetAttributeByName(TupleTableSlot *slot, char *attname, bool *isNull); |
|
|
|
|
extern Datum ExecEvalExpr(Node *expression, ExprContext *econtext, bool *isNull, |
|
|
|
|
bool *isDone); |
|
|
|
|
extern bool ExecQual(List *qual, ExprContext *econtext); |
|
|
|
|
extern int ExecTargetListLength(List *targetlist); |
|
|
|
|
@ -101,22 +94,19 @@ extern TupleTableSlot *ExecScan(Scan *node, TupleTableSlot *(*accessMtd) ()); |
|
|
|
|
extern TupleTable ExecCreateTupleTable(int initialSize); |
|
|
|
|
extern void ExecDestroyTupleTable(TupleTable table, bool shouldFree); |
|
|
|
|
extern TupleTableSlot *ExecAllocTableSlot(TupleTable table); |
|
|
|
|
extern TupleTableSlot * |
|
|
|
|
ExecStoreTuple(HeapTuple tuple, |
|
|
|
|
extern TupleTableSlot *ExecStoreTuple(HeapTuple tuple, |
|
|
|
|
TupleTableSlot *slot, |
|
|
|
|
Buffer buffer, |
|
|
|
|
bool shouldFree); |
|
|
|
|
extern TupleTableSlot *ExecClearTuple(TupleTableSlot *slot); |
|
|
|
|
extern bool ExecSetSlotPolicy(TupleTableSlot *slot, bool shouldFree); |
|
|
|
|
extern TupleDesc |
|
|
|
|
ExecSetSlotDescriptor(TupleTableSlot *slot, |
|
|
|
|
extern TupleDesc ExecSetSlotDescriptor(TupleTableSlot *slot, |
|
|
|
|
TupleDesc tupdesc); |
|
|
|
|
extern void ExecSetSlotDescriptorIsNew(TupleTableSlot *slot, bool isNew); |
|
|
|
|
extern void ExecIncrSlotBufferRefcnt(TupleTableSlot *slot); |
|
|
|
|
extern bool TupIsNull(TupleTableSlot *slot); |
|
|
|
|
extern void ExecInitResultTupleSlot(EState *estate, CommonState *commonstate); |
|
|
|
|
extern void |
|
|
|
|
ExecInitScanTupleSlot(EState *estate, |
|
|
|
|
extern void ExecInitScanTupleSlot(EState *estate, |
|
|
|
|
CommonScanState *commonscanstate); |
|
|
|
|
extern void ExecInitMarkedTupleSlot(EState *estate, MergeJoinState *mergestate); |
|
|
|
|
extern void ExecInitOuterTupleSlot(EState *estate, HashJoinState *hashstate); |
|
|
|
|
@ -128,39 +118,31 @@ extern TupleDesc ExecTypeFromTL(List *targetList); |
|
|
|
|
* prototypes from functions in execTuples.c |
|
|
|
|
*/ |
|
|
|
|
extern void ResetTupleCount(void); |
|
|
|
|
extern void |
|
|
|
|
ExecAssignNodeBaseInfo(EState *estate, CommonState *basenode, |
|
|
|
|
extern void ExecAssignNodeBaseInfo(EState *estate, CommonState *basenode, |
|
|
|
|
Plan *parent); |
|
|
|
|
extern void ExecAssignExprContext(EState *estate, CommonState *commonstate); |
|
|
|
|
extern void |
|
|
|
|
ExecAssignResultType(CommonState *commonstate, |
|
|
|
|
extern void ExecAssignResultType(CommonState *commonstate, |
|
|
|
|
TupleDesc tupDesc); |
|
|
|
|
extern void |
|
|
|
|
ExecAssignResultTypeFromOuterPlan(Plan *node, |
|
|
|
|
extern void ExecAssignResultTypeFromOuterPlan(Plan *node, |
|
|
|
|
CommonState *commonstate); |
|
|
|
|
extern void ExecAssignResultTypeFromTL(Plan *node, CommonState *commonstate); |
|
|
|
|
extern TupleDesc ExecGetResultType(CommonState *commonstate); |
|
|
|
|
extern void ExecAssignProjectionInfo(Plan *node, CommonState *commonstate); |
|
|
|
|
extern void ExecFreeProjectionInfo(CommonState *commonstate); |
|
|
|
|
extern TupleDesc ExecGetScanType(CommonScanState *csstate); |
|
|
|
|
extern void |
|
|
|
|
ExecAssignScanType(CommonScanState *csstate, |
|
|
|
|
extern void ExecAssignScanType(CommonScanState *csstate, |
|
|
|
|
TupleDesc tupDesc); |
|
|
|
|
extern void |
|
|
|
|
ExecAssignScanTypeFromOuterPlan(Plan *node, |
|
|
|
|
extern void ExecAssignScanTypeFromOuterPlan(Plan *node, |
|
|
|
|
CommonScanState *csstate); |
|
|
|
|
extern AttributeTupleForm ExecGetTypeInfo(Relation relDesc); |
|
|
|
|
|
|
|
|
|
extern void |
|
|
|
|
ExecOpenIndices(Oid resultRelationOid, |
|
|
|
|
extern void ExecOpenIndices(Oid resultRelationOid, |
|
|
|
|
RelationInfo *resultRelationInfo); |
|
|
|
|
extern void ExecCloseIndices(RelationInfo *resultRelationInfo); |
|
|
|
|
extern void |
|
|
|
|
ExecInsertIndexTuples(TupleTableSlot *slot, ItemPointer tupleid, |
|
|
|
|
extern void ExecInsertIndexTuples(TupleTableSlot *slot, ItemPointer tupleid, |
|
|
|
|
EState *estate, bool is_update); |
|
|
|
|
extern void resetVarAttrLenForCreateTable(TupleDesc tupType); |
|
|
|
|
extern void |
|
|
|
|
setVarAttrLenForCreateTable(TupleDesc tupType, |
|
|
|
|
extern void setVarAttrLenForCreateTable(TupleDesc tupType, |
|
|
|
|
List *targetList, List *rangeTable); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|