这篇教程C++ ExecFreeExprContext函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中ExecFreeExprContext函数的典型用法代码示例。如果您正苦于以下问题:C++ ExecFreeExprContext函数的具体用法?C++ ExecFreeExprContext怎么用?C++ ExecFreeExprContext使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了ExecFreeExprContext函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: ExecEndExternalScan/* ----------------------------------------------------------------* ExecEndExternalScan** frees any storage allocated through C routines.* ----------------------------------------------------------------*/voidExecEndExternalScan(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,
示例2: ExecEndSubqueryScan/* ---------------------------------------------------------------- * ExecEndSubqueryScan * * frees any storage allocated through C routines. * ---------------------------------------------------------------- */voidExecEndSubqueryScan(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,
示例3: ExecEndAppendOnlyScan/* ---------------------------------------------------------------- * ExecEndAppendOnlyScan * * frees any storage allocated through C routines. * ---------------------------------------------------------------- */voidExecEndAppendOnlyScan(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,
示例4: ExecEndSeqScan/* ---------------------------------------------------------------- * ExecEndSeqScan * * frees any storage allocated through C routines. * ---------------------------------------------------------------- */voidExecEndSeqScan(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,
示例5: ExecEndNestLoop/* ---------------------------------------------------------------- * ExecEndNestLoop * * closes down scans and frees allocated storage * ---------------------------------------------------------------- */voidExecEndNestLoop(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,
示例6: ExecEndSeqScan/* ---------------------------------------------------------------- * ExecEndSeqScan * * frees any storage allocated through C routines. * ---------------------------------------------------------------- */voidExecEndSeqScan(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,
示例7: ExecEndSubqueryScan/* ---------------------------------------------------------------- * ExecEndSubqueryScan * * frees any storage allocated through C routines. * ---------------------------------------------------------------- */voidExecEndSubqueryScan(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,
示例8: ExecEndLimit/* ---------------------------------------------------------------- * ExecEndLimit * * This shuts down the subplan and frees resources allocated * to this node. * ---------------------------------------------------------------- */voidExecEndLimit(LimitState *node){ ExecFreeExprContext(&node->ps); ExecEndNode(outerPlanState(node)); EndPlanStateGpmonPkt(&node->ps);}
开发者ID:50wu,项目名称:gpdb,代码行数:15,
示例9: ExecEndGather/* ---------------------------------------------------------------- * ExecEndGather * * frees any storage allocated through C routines. * ---------------------------------------------------------------- */voidExecEndGather(GatherState *node){ ExecShutdownGather(node); ExecFreeExprContext(&node->ps); ExecClearTuple(node->ps.ps_ResultTupleSlot); ExecEndNode(outerPlanState(node));}
开发者ID:linwanggm,项目名称:postgres,代码行数:14,
示例10: ExecEndGatherMerge/* ---------------------------------------------------------------- * ExecEndGatherMerge * * frees any storage allocated through C routines. * ---------------------------------------------------------------- */voidExecEndGatherMerge(GatherMergeState *node){ ExecEndNode(outerPlanState(node)); /* let children clean up first */ ExecShutdownGatherMerge(node); ExecFreeExprContext(&node->ps); ExecClearTuple(node->ps.ps_ResultTupleSlot);}
开发者ID:chrullrich,项目名称:postgres,代码行数:14,
示例11: ExecEndLimit/* ---------------------------------------------------------------- * ExecEndLimit * * This shuts down the subplan and frees resources allocated * to this node. * ---------------------------------------------------------------- */voidExecEndLimit(LimitState *node){ ExecFreeExprContext(&node->ps); /* clean up tuple table */ ExecClearTuple(node->ps.ps_ResultTupleSlot); ExecEndNode(outerPlanState(node));}
开发者ID:sunyangkobe,项目名称:cscd43,代码行数:17,
示例12: ExecEndDML/* Release Resources Requested by nodeDML. */voidExecEndDML(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,
示例13: FreeScanRelationInternal/* * FreeScanRelationInternal * Free ScanState common variables initialized in InitScanStateInternal. */voidFreeScanRelationInternal(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,
示例14: ExecEndBitmapHeapScan/* ---------------------------------------------------------------- * ExecEndBitmapHeapScan * ---------------------------------------------------------------- */voidExecEndBitmapHeapScan(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,
示例15: ExecEndBitmapHeapScan/* ---------------------------------------------------------------- * ExecEndBitmapHeapScan * ---------------------------------------------------------------- */voidExecEndBitmapHeapScan(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,
示例16: ExecEndSetOp/* ---------------------------------------------------------------- * ExecEndSetOp * * This shuts down the subplan and frees resources allocated * to this node. * ---------------------------------------------------------------- */voidExecEndSetOp(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,
示例17: ExecEndGroup/* ------------------------ * ExecEndGroup(node) * * ----------------------- */voidExecEndGroup(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,
示例18: ExecEndBitmapHeapScan/* ---------------------------------------------------------------- * ExecEndBitmapHeapScan * ---------------------------------------------------------------- */voidExecEndBitmapHeapScan(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,
示例19: ExecEndWorkTableScan/* ---------------------------------------------------------------- * ExecEndWorkTableScan * * frees any storage allocated through C routines. * ---------------------------------------------------------------- */voidExecEndWorkTableScan(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,
示例20: ExecEndRepeatvoidExecEndRepeat(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,
示例21: ExecEndIndexOnlyScan/* ---------------------------------------------------------------- * ExecEndIndexOnlyScan * ---------------------------------------------------------------- */voidExecEndIndexOnlyScan(IndexOnlyScanState *node){ Relation indexRelationDesc; IndexScanDesc indexScanDesc; Relation relation; /* * extract information from the node */ indexRelationDesc = node->ioss_RelationDesc; indexScanDesc = node->ioss_ScanDesc; relation = node->ss.ss_currentRelation; /* Release VM buffer pin, if any. */ if (node->ioss_VMBuffer != InvalidBuffer) { ReleaseBuffer(node->ioss_VMBuffer); node->ioss_VMBuffer = InvalidBuffer; } /* * Free the exprcontext(s) ... now dead code, see ExecFreeExprContext */#ifdef NOT_USED ExecFreeExprContext(&node->ss.ps); if (node->ioss_RuntimeContext) FreeExprContext(node->ioss_RuntimeContext, true);#endif /* * clear out tuple table slots */ ExecClearTuple(node->ss.ps.ps_ResultTupleSlot); ExecClearTuple(node->ss.ss_ScanTupleSlot); /* * close the index relation (no-op if we didn't open it) */ if (indexScanDesc) index_endscan(indexScanDesc); if (indexRelationDesc) index_close(indexRelationDesc, NoLock); /* * close the heap relation. */ ExecCloseScanRelation(relation);}
开发者ID:EccentricLoggers,项目名称:peloton,代码行数:53,
示例22: ExecEndForeignScan/* ---------------------------------------------------------------- * ExecEndForeignScan * * frees any storage allocated through C routines. * ---------------------------------------------------------------- */voidExecEndForeignScan(ForeignScanState *node){ /* Let the FDW shut down */ node->fdwroutine->EndForeignScan(node); /* Free the exprcontext */ ExecFreeExprContext(&node->ss.ps); /* clean out the tuple table */ ExecClearTuple(node->ss.ps.ps_ResultTupleSlot); ExecClearTuple(node->ss.ss_ScanTupleSlot); /* close the relation. */ ExecCloseScanRelation(node->ss.ss_currentRelation);}
开发者ID:bwright,项目名称:postgres,代码行数:22,
示例23: ExecEndHash/* --------------------------------------------------------------- * ExecEndHash * * clean up routine for Hash node * ---------------------------------------------------------------- */voidExecEndHash(HashState *node){ PlanState *outerPlan; /* * free exprcontext */ ExecFreeExprContext(&node->ps); /* * shut down the subplan */ outerPlan = outerPlanState(node); ExecEndNode(outerPlan);}
开发者ID:fdr,项目名称:postgres,代码行数:22,
示例24: ExecEndCustomScanvoidExecEndCustomScan(CustomScanState *node){ Assert(node->methods->EndCustomScan != NULL); node->methods->EndCustomScan(node); /* Free the exprcontext */ ExecFreeExprContext(&node->ss.ps); /* Clean out the tuple table */ ExecClearTuple(node->ss.ps.ps_ResultTupleSlot); ExecClearTuple(node->ss.ss_ScanTupleSlot); /* Close the heap relation */ if (node->ss.ss_currentRelation) ExecCloseScanRelation(node->ss.ss_currentRelation);}
开发者ID:CraigHarris,项目名称:gpdb,代码行数:17,
示例25: ExecEndResult/* ---------------------------------------------------------------- * ExecEndResult * * frees up storage allocated through C routines * ---------------------------------------------------------------- */voidExecEndResult(ResultState *node){ /* * Free the exprcontext */ ExecFreeExprContext(&node->ps); /* * clean out the tuple table */ ExecClearTuple(node->ps.ps_ResultTupleSlot); /* * shut down subplans */ ExecEndNode(outerPlanState(node));}
开发者ID:EccentricLoggers,项目名称:peloton,代码行数:24,
示例26: ExecEndIndexScan/* ---------------------------------------------------------------- * ExecEndIndexScan * ---------------------------------------------------------------- */voidExecEndIndexScan(IndexScanState *node){ Relation indexRelationDesc; IndexScanDesc indexScanDesc; Relation relation; /* * extract information from the node */ indexRelationDesc = node->iss_RelationDesc; indexScanDesc = node->iss_ScanDesc; relation = node->ss.ss_currentRelation; /* * Free the exprcontext(s) ... now dead code, see ExecFreeExprContext */#ifdef NOT_USED ExecFreeExprContext(&node->ss.ps); if (node->iss_RuntimeContext) FreeExprContext(node->iss_RuntimeContext);#endif /* * clear out tuple table slots */ ExecClearTuple(node->ss.ps.ps_ResultTupleSlot); ExecClearTuple(node->ss.ss_ScanTupleSlot); /* * close the index relation (no-op if we didn't open it) */ ExecEagerFreeIndexScan(node); if (indexRelationDesc) index_close(indexRelationDesc, NoLock); /* * close the heap relation. */ ExecCloseScanRelation(relation); FreeRuntimeKeysContext(node); EndPlanStateGpmonPkt(&node->ss.ps);}
开发者ID:LJoNe,项目名称:gpdb,代码行数:48,
示例27: ExecEndSubqueryScan/* ---------------------------------------------------------------- * ExecEndSubqueryScan * * frees any storage allocated through C routines. * ---------------------------------------------------------------- */voidExecEndSubqueryScan(SubqueryScanState *node){ /* * Free the exprcontext */ ExecFreeExprContext(&node->ss.ps); /* * clean out the upper tuple table */ ExecClearTuple(node->ss.ps.ps_ResultTupleSlot); ExecClearTuple(node->ss.ss_ScanTupleSlot); /* * close down subquery */ ExecEndNode(node->subplan);}
开发者ID:5A68656E67,项目名称:postgres,代码行数:25,
示例28: ExecEndCteScan/* ---------------------------------------------------------------- * ExecEndCteScan * * frees any storage allocated through C routines. * ---------------------------------------------------------------- */voidExecEndCteScan(CteScanState *node){ /* * Free exprcontext */ ExecFreeExprContext(&node->ss.ps); /* * clean out the tuple table */ ExecClearTuple(node->ss.ps.ps_ResultTupleSlot); ExecClearTuple(node->ss.ss_ScanTupleSlot); /* * If I am the leader, free the tuplestore. */ if (node->leader == node) tuplestore_end(node->cte_table);}
开发者ID:Epictetus,项目名称:postgres,代码行数:26,
示例29: ExecEndFunctionScan/* ---------------------------------------------------------------- * ExecEndFunctionScan * * frees any storage allocated through C routines. * ---------------------------------------------------------------- */voidExecEndFunctionScan(FunctionScanState *node){ /* * Free the exprcontext */ ExecFreeExprContext(&node->ss.ps); /* * clean out the tuple table */ ExecClearTuple(node->ss.ps.ps_ResultTupleSlot); ExecClearTuple(node->ss.ss_ScanTupleSlot); /* * Release tuplestore resources */ if (node->tuplestorestate != NULL) tuplestore_end(node->tuplestorestate); node->tuplestorestate = NULL;}
开发者ID:cbbrowne,项目名称:postgres,代码行数:27,
注:本文中的ExecFreeExprContext函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ ExecInitExpr函数代码示例 C++ ExecEndNode函数代码示例 |