本文整理汇总了C++中ExecFreeExprContext函数的典型用法代码示例。如果您正苦于以下问题:C++ ExecFreeExprContext函数的具体用法?C++ ExecFreeExprContext怎么用?C++ ExecFreeExprContext使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ExecFreeExprContext函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: ExecEndExternalScan
/* ----------------------------------------------------------------
* ExecEndExternalScan
*
* frees any storage allocated through C routines.
* ----------------------------------------------------------------
*/
void
ExecEndExternalScan(ExternalScanState *node)
{
/*
* Free the exprcontext
*/
ExecFreeExprContext(&node->ss.ps);
/*
* clean out the tuple table
*/
ExecClearTuple(node->ss.ps.ps_ResultTupleSlot);
ExecClearTuple(node->ss.ss_ScanTupleSlot);
ExecEagerFreeExternalScan(node);
pfree(node->ess_ScanDesc);
/*
* close the external relation.
*
* MPP-8040: make sure we don't close it if it hasn't completed setup, or
* if we've already closed it.
*/
if (node->ss.ss_currentRelation)
{
Relation relation = node->ss.ss_currentRelation;
node->ss.ss_currentRelation = NULL;
ExecCloseScanRelation(relation);
}
EndPlanStateGpmonPkt(&node->ss.ps);
}
开发者ID:PivotalBigData,项目名称:incubator-hawq,代码行数:38,代码来源:nodeExternalscan.c
示例2: ExecEndSubqueryScan
/* ----------------------------------------------------------------
* ExecEndSubqueryScan
*
* frees any storage allocated through C routines.
* ----------------------------------------------------------------
*/
void
ExecEndSubqueryScan(SubqueryScanState *node)
{
MemoryContext oldcontext;
/*
* Free the exprcontext
*/
ExecFreeExprContext(&node->ss.ps);
/*
* clean out the upper tuple table
*/
ExecClearTuple(node->ss.ps.ps_ResultTupleSlot);
node->ss.ss_ScanTupleSlot = NULL; /* not ours to clear */
/*
* close down subquery
*/
oldcontext = MemoryContextSwitchTo(node->sss_SubEState->es_query_cxt);
ExecEndPlan(node->subplan, node->sss_SubEState);
MemoryContextSwitchTo(oldcontext);
FreeExecutorState(node->sss_SubEState);
}
开发者ID:CraigBryan,项目名称:PostgresqlFun,代码行数:33,代码来源:nodeSubqueryscan.c
示例3: ExecEndAppendOnlyScan
/* ----------------------------------------------------------------
* ExecEndAppendOnlyScan
*
* frees any storage allocated through C routines.
* ----------------------------------------------------------------
*/
void
ExecEndAppendOnlyScan(AppendOnlyScanState *node)
{
Relation relation;
AppendOnlyScanDesc scanDesc;
/*
* get information from node
*/
relation = node->ss.ss_currentRelation;
scanDesc = node->aos_ScanDesc;
/*
* Free the exprcontext
*/
ExecFreeExprContext(&node->ss.ps);
/*
* clean out the tuple table
*/
ExecClearTuple(node->ss.ps.ps_ResultTupleSlot);
ExecClearTuple(node->ss.ss_ScanTupleSlot);
ExecEagerFreeAppendOnlyScan(node);
/*
* close the heap relation.
*/
ExecCloseScanRelation(relation);
EndPlanStateGpmonPkt(&node->ss.ps);
}
开发者ID:BALDELab,项目名称:incubator-hawq,代码行数:38,代码来源:nodeAppendOnlyscan.c
示例4: ExecEndSeqScan
/* ----------------------------------------------------------------
* ExecEndSeqScan
*
* frees any storage allocated through C routines.
* ----------------------------------------------------------------
*/
void
ExecEndSeqScan(SeqScanState *node)
{
Relation relation;
/*
* get information from node
*/
relation = node->ss_currentRelation;
/*
* Free the exprcontext
*/
ExecFreeExprContext(&node->ps);
/*
* clean out the tuple table
*/
ExecClearTuple(node->ps.ps_ResultTupleSlot);
ExecClearTuple(node->ss_ScanTupleSlot);
ExecEagerFreeSeqScan(node);
/*
* close the heap relation.
*/
ExecCloseScanRelation(relation);
/* gpmon */
EndPlanStateGpmonPkt(&node->ps);
}
开发者ID:AnLingm,项目名称:gpdb,代码行数:37,代码来源:nodeSeqscan.c
示例5: ExecEndNestLoop
/* ----------------------------------------------------------------
* ExecEndNestLoop
*
* closes down scans and frees allocated storage
* ----------------------------------------------------------------
*/
void
ExecEndNestLoop(NestLoopState *node)
{
NL1_printf("ExecEndNestLoop: %s\n",
"ending node processing");
/*
* Free the exprcontext
*/
ExecFreeExprContext(&node->js.ps);
/*
* clean out the tuple table
*/
ExecClearTuple(node->js.ps.ps_ResultTupleSlot);
/*
* close down subplans
*/
ExecEndNode(outerPlanState(node));
ExecEndNode(innerPlanState(node));
NL1_printf("ExecEndNestLoop: %s\n",
"node processing ended");
}
开发者ID:shubham2094,项目名称:postgresql_8.2,代码行数:31,代码来源:nodeNestloop.c
示例6: ExecEndSeqScan
/* ----------------------------------------------------------------
* ExecEndSeqScan
*
* frees any storage allocated through C routines.
* ----------------------------------------------------------------
*/
void
ExecEndSeqScan(SeqScanState *node)
{
Relation relation;
HeapScanDesc scanDesc;
/*
* get information from node
*/
relation = node->ss_currentRelation;
scanDesc = node->ss_currentScanDesc;
/*
* Free the exprcontext
*/
ExecFreeExprContext(&node->ps);
/*
* clean out the tuple table
*/
ExecClearTuple(node->ps.ps_ResultTupleSlot);
ExecClearTuple(node->ss_ScanTupleSlot);
/*
* close heap scan
*/
heap_endscan(scanDesc);
/*
* close the heap relation.
*/
ExecCloseScanRelation(relation);
}
开发者ID:LittleForker,项目名称:postgres,代码行数:39,代码来源:nodeSeqscan.c
示例7: ExecEndSubqueryScan
/* ----------------------------------------------------------------
* ExecEndSubqueryScan
*
* frees any storage allocated through C routines.
* ----------------------------------------------------------------
*/
void
ExecEndSubqueryScan(SubqueryScanState *node)
{
/*
* Free the exprcontext
*/
ExecFreeExprContext(&node->ss.ps);
/*
* clean out the upper tuple table
*/
if (node->ss.ss_ScanTupleSlot != NULL)
{
ExecClearTuple(node->ss.ps.ps_ResultTupleSlot);
node->ss.ss_ScanTupleSlot = NULL; /* not ours to clear */
}
/* gpmon */
EndPlanStateGpmonPkt(&node->ss.ps);
/*
* close down subquery
*/
ExecEndNode(node->subplan);
}
开发者ID:LJoNe,项目名称:gpdb,代码行数:31,代码来源:nodeSubqueryscan.c
示例8: ExecEndLimit
/* ----------------------------------------------------------------
* ExecEndLimit
*
* This shuts down the subplan and frees resources allocated
* to this node.
* ----------------------------------------------------------------
*/
void
ExecEndLimit(LimitState *node)
{
ExecFreeExprContext(&node->ps);
ExecEndNode(outerPlanState(node));
EndPlanStateGpmonPkt(&node->ps);
}
开发者ID:50wu,项目名称:gpdb,代码行数:15,代码来源:nodeLimit.c
示例9: ExecEndGather
/* ----------------------------------------------------------------
* ExecEndGather
*
* frees any storage allocated through C routines.
* ----------------------------------------------------------------
*/
void
ExecEndGather(GatherState *node)
{
ExecShutdownGather(node);
ExecFreeExprContext(&node->ps);
ExecClearTuple(node->ps.ps_ResultTupleSlot);
ExecEndNode(outerPlanState(node));
}
开发者ID:linwanggm,项目名称:postgres,代码行数:14,代码来源:nodeGather.c
示例10: ExecEndGatherMerge
/* ----------------------------------------------------------------
* ExecEndGatherMerge
*
* frees any storage allocated through C routines.
* ----------------------------------------------------------------
*/
void
ExecEndGatherMerge(GatherMergeState *node)
{
ExecEndNode(outerPlanState(node)); /* let children clean up first */
ExecShutdownGatherMerge(node);
ExecFreeExprContext(&node->ps);
ExecClearTuple(node->ps.ps_ResultTupleSlot);
}
开发者ID:chrullrich,项目名称:postgres,代码行数:14,代码来源:nodeGatherMerge.c
示例11: ExecEndLimit
/* ----------------------------------------------------------------
* ExecEndLimit
*
* This shuts down the subplan and frees resources allocated
* to this node.
* ----------------------------------------------------------------
*/
void
ExecEndLimit(LimitState *node)
{
ExecFreeExprContext(&node->ps);
/* clean up tuple table */
ExecClearTuple(node->ps.ps_ResultTupleSlot);
ExecEndNode(outerPlanState(node));
}
开发者ID:sunyangkobe,项目名称:cscd43,代码行数:17,代码来源:nodeLimit.c
示例12: ExecEndDML
/* Release Resources Requested by nodeDML. */
void
ExecEndDML(DMLState *node)
{
/* Release explicitly the TupleDesc for result relation */
ReleaseTupleDesc(node->junkfilter->jf_cleanTupType);
ExecFreeExprContext(&node->ps);
ExecClearTuple(node->ps.ps_ResultTupleSlot);
ExecClearTuple(node->cleanedUpSlot);
ExecEndNode(outerPlanState(node));
EndPlanStateGpmonPkt(&node->ps);
}
开发者ID:BALDELab,项目名称:incubator-hawq,代码行数:13,代码来源:nodeDML.c
示例13: FreeScanRelationInternal
/*
* FreeScanRelationInternal
* Free ScanState common variables initialized in InitScanStateInternal.
*/
void
FreeScanRelationInternal(ScanState *scanState, bool closeCurrentRelation)
{
ExecFreeExprContext(&scanState->ps);
ExecClearTuple(scanState->ps.ps_ResultTupleSlot);
ExecClearTuple(scanState->ss_ScanTupleSlot);
if (closeCurrentRelation)
{
ExecCloseScanRelation(scanState->ss_currentRelation);
}
}
开发者ID:BALDELab,项目名称:incubator-hawq,代码行数:16,代码来源:execScan.c
示例14: ExecEndBitmapHeapScan
/* ----------------------------------------------------------------
* ExecEndBitmapHeapScan
* ----------------------------------------------------------------
*/
void
ExecEndBitmapHeapScan(BitmapHeapScanState *node)
{
Relation relation;
HeapScanDesc scanDesc;
/*
* extract information from the node
*/
relation = node->ss.ss_currentRelation;
scanDesc = node->ss.ss_currentScanDesc;
/*
* Free the exprcontext
*/
ExecFreeExprContext(&node->ss.ps);
/*
* clear out tuple table slots
*/
ExecClearTuple(node->ss.ps.ps_ResultTupleSlot);
ExecClearTuple(node->ss.ss_ScanTupleSlot);
/*
* close down subplans
*/
ExecEndNode(outerPlanState(node));
/*
* release bitmap if any
*/
if (node->tbmiterator)
tbm_end_iterate(node->tbmiterator);
if (node->prefetch_iterator)
tbm_end_iterate(node->prefetch_iterator);
if (node->tbm)
tbm_free(node->tbm);
if (node->shared_tbmiterator)
tbm_end_shared_iterate(node->shared_tbmiterator);
if (node->shared_prefetch_iterator)
tbm_end_shared_iterate(node->shared_prefetch_iterator);
/*
* close heap scan
*/
heap_endscan(scanDesc);
/*
* close the heap relation.
*/
ExecCloseScanRelation(relation);
}
开发者ID:BertrandAreal,项目名称:postgres,代码行数:56,代码来源:nodeBitmapHeapscan.c
示例15: ExecEndBitmapHeapScan
/* ----------------------------------------------------------------
* ExecEndBitmapHeapScan
* ----------------------------------------------------------------
*/
void
ExecEndBitmapHeapScan(BitmapHeapScanState *node)
{
Relation relation;
HeapScanDesc scanDesc;
/*
* extract information from the node
*/
relation = node->ss.ss_currentRelation;
scanDesc = node->ss.ss_currentScanDesc;
/*
* Free the exprcontext
*/
ExecFreeExprContext(&node->ss.ps);
/*
* clear out tuple table slots
*/
ExecClearTuple(node->ss.ps.ps_ResultTupleSlot);
ExecClearTuple(node->ss.ss_ScanTupleSlot);
/*
* close down subplans
*/
ExecEndNode(outerPlanState(node));
/*
* release bitmap if any
*/
if (node->tbm)
tbm_free(node->tbm);
if (node->odbm)
odbm_free(node->odbm);
/*
* close heap scan
*/
heap_endscan(scanDesc);
/*
* close the heap relation.
*
* Currently, we do not release the AccessShareLock acquired by
* ExecInitBitmapHeapScan. This lock should be held till end of
* transaction. (There is a faction that considers this too much locking,
* however.)
*/
heap_close(relation, NoLock);
}
开发者ID:jaiminpan,项目名称:bizgres,代码行数:56,代码来源:nodeBitmapHeapscan.c
示例16: ExecEndSetOp
/* ----------------------------------------------------------------
* ExecEndSetOp
*
* This shuts down the subplan and frees resources allocated
* to this node.
* ----------------------------------------------------------------
*/
void
ExecEndSetOp(SetOpState *node)
{
/* clean up tuple table */
ExecClearTuple(node->ps.ps_ResultTupleSlot);
/* free subsidiary stuff including hashtable */
if (node->tableContext)
MemoryContextDelete(node->tableContext);
ExecFreeExprContext(&node->ps);
ExecEndNode(outerPlanState(node));
}
开发者ID:eubide,项目名称:postgres,代码行数:20,代码来源:nodeSetOp.c
示例17: ExecEndGroup
/* ------------------------
* ExecEndGroup(node)
*
* -----------------------
*/
void
ExecEndGroup(GroupState *node)
{
PlanState *outerPlan;
ExecFreeExprContext(&node->ss.ps);
/* clean up tuple table */
ExecClearTuple(node->ss.ss_ScanTupleSlot);
outerPlan = outerPlanState(node);
ExecEndNode(outerPlan);
}
开发者ID:CraigBryan,项目名称:PostgresqlFun,代码行数:18,代码来源:nodeGroup.c
示例18: ExecEndBitmapHeapScan
/* ----------------------------------------------------------------
* ExecEndBitmapHeapScan
* ----------------------------------------------------------------
*/
void
ExecEndBitmapHeapScan(BitmapHeapScanState *node)
{
HeapScanDesc scanDesc;
/*
* extract information from the node
*/
scanDesc = node->ss.ss_currentScanDesc;
/*
* Free the exprcontext
*/
ExecFreeExprContext(&node->ss.ps);
/*
* clear out tuple table slots
*/
if (node->ss.ps.ps_ResultTupleSlot)
ExecClearTuple(node->ss.ps.ps_ResultTupleSlot);
ExecClearTuple(node->ss.ss_ScanTupleSlot);
/*
* close down subplans
*/
ExecEndNode(outerPlanState(node));
/*
* release bitmaps and buffers if any
*/
if (node->tbmiterator)
tbm_end_iterate(node->tbmiterator);
if (node->prefetch_iterator)
tbm_end_iterate(node->prefetch_iterator);
if (node->tbm)
tbm_free(node->tbm);
if (node->shared_tbmiterator)
tbm_end_shared_iterate(node->shared_tbmiterator);
if (node->shared_prefetch_iterator)
tbm_end_shared_iterate(node->shared_prefetch_iterator);
if (node->vmbuffer != InvalidBuffer)
ReleaseBuffer(node->vmbuffer);
if (node->pvmbuffer != InvalidBuffer)
ReleaseBuffer(node->pvmbuffer);
/*
* close heap scan
*/
heap_endscan(scanDesc);
}
开发者ID:eubide,项目名称:postgres,代码行数:54,代码来源:nodeBitmapHeapscan.c
示例19: ExecEndWorkTableScan
/* ----------------------------------------------------------------
* ExecEndWorkTableScan
*
* frees any storage allocated through C routines.
* ----------------------------------------------------------------
*/
void
ExecEndWorkTableScan(WorkTableScanState *node)
{
/*
* Free exprcontext
*/
ExecFreeExprContext(&node->ss.ps);
/*
* clean out the tuple table
*/
ExecClearTuple(node->ss.ps.ps_ResultTupleSlot);
ExecClearTuple(node->ss.ss_ScanTupleSlot);
}
开发者ID:EccentricLoggers,项目名称:peloton,代码行数:20,代码来源:nodeWorktablescan.cpp
示例20: ExecEndRepeat
void
ExecEndRepeat(RepeatState *node)
{
/* Free the ExprContext */
ExecFreeExprContext(&node->ps);
/* Clean out the tuple table */
ExecClearTuple(node->ps.ps_ResultTupleSlot);
/* End the subplans */
ExecEndNode(outerPlanState(node));
EndPlanStateGpmonPkt(&node->ps);
}
开发者ID:50wu,项目名称:gpdb,代码行数:14,代码来源:nodeRepeat.c
注:本文中的ExecFreeExprContext函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论