这篇教程C++ ExecReScan函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中ExecReScan函数的典型用法代码示例。如果您正苦于以下问题:C++ ExecReScan函数的具体用法?C++ ExecReScan怎么用?C++ ExecReScan使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了ExecReScan函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: ExecReScanMaterial/* ---------------------------------------------------------------- * ExecReScanMaterial * * Rescans the materialized relation. * ---------------------------------------------------------------- */voidExecReScanMaterial(MaterialState *node){ PlanState *outerPlan = outerPlanState(node); ExecClearTuple(node->ss.ps.ps_ResultTupleSlot); if (node->eflags != 0) { /* * If we haven't materialized yet, just return. If outerplan's * chgParam is not NULL then it will be re-scanned by ExecProcNode, * else no reason to re-scan it at all. */ if (!node->tuplestorestate) return; /* * If subnode is to be rescanned then we forget previous stored * results; we have to re-read the subplan and re-store. Also, if we * told tuplestore it needn't support rescan, we lose and must * re-read. (This last should not happen in common cases; else our * caller lied by not passing EXEC_FLAG_REWIND to us.) * * Otherwise we can just rewind and rescan the stored output. The * state of the subnode does not change. */ if (outerPlan->chgParam != NULL || (node->eflags & EXEC_FLAG_REWIND) == 0) { tuplestore_end(node->tuplestorestate); node->tuplestorestate = NULL; if (outerPlan->chgParam == NULL) ExecReScan(outerPlan); node->eof_underlying = false; } else tuplestore_rescan(node->tuplestorestate); } else { /* In this case we are just passing on the subquery's output */ /* * if chgParam of subnode is not null then plan will be re-scanned by * first ExecProcNode. */ if (outerPlan->chgParam == NULL) ExecReScan(outerPlan); node->eof_underlying = false; }}
开发者ID:adityavs,项目名称:postgres,代码行数:58,
示例2: ExecSubqueryReScan/* ---------------------------------------------------------------- * ExecSubqueryReScan * * Rescans the relation. * ---------------------------------------------------------------- */voidExecSubqueryReScan(SubqueryScanState *node, ExprContext *exprCtxt){ EState *estate; estate = node->ss.ps.state; ItemPointerSet(&node->cdb_fake_ctid, 0, 0); /* * ExecReScan doesn't know about my subplan, so I have to do * changed-parameter signaling myself. This is just as well, because the * subplan has its own memory context in which its chgParam state lives. */ if (node->ss.ps.chgParam != NULL) UpdateChangedParamSet(node->subplan, node->ss.ps.chgParam); /* * if chgParam of subnode is not null then plan will be re-scanned by * first ExecProcNode. */ if (node->subplan->chgParam == NULL) ExecReScan(node->subplan, NULL); node->ss.ss_ScanTupleSlot = NULL; /*node->ss.ps.ps_TupFromTlist = false;*/ Gpmon_M_Incr(GpmonPktFromSubqueryScanState(node), GPMON_SUBQUERYSCAN_RESCAN); CheckSendPlanStateGpmonPkt(&node->ss.ps);}
开发者ID:LJoNe,项目名称:gpdb,代码行数:36,
示例3: ExecReScanBitmapHeapScan/* ---------------------------------------------------------------- * ExecReScanBitmapHeapScan(node) * ---------------------------------------------------------------- */voidExecReScanBitmapHeapScan(BitmapHeapScanState *node){ PlanState *outerPlan = outerPlanState(node); /* rescan to release any page pin */ heap_rescan(node->ss.ss_currentScanDesc, NULL); if (node->tbmiterator) tbm_end_iterate(node->tbmiterator); if (node->prefetch_iterator) tbm_end_iterate(node->prefetch_iterator); 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->tbm) tbm_free(node->tbm); node->tbm = NULL; node->tbmiterator = NULL; node->tbmres = NULL; node->prefetch_iterator = NULL; node->initialized = false; node->shared_tbmiterator = NULL; node->shared_prefetch_iterator = NULL; ExecScanReScan(&node->ss); /* * if chgParam of subnode is not null then plan will be re-scanned by * first ExecProcNode. */ if (outerPlan->chgParam == NULL) ExecReScan(outerPlan);}
开发者ID:BertrandAreal,项目名称:postgres,代码行数:39,
示例4: ExecSubqueryReScan/* ---------------------------------------------------------------- * ExecSubqueryReScan * * Rescans the relation. * ---------------------------------------------------------------- */voidExecSubqueryReScan(SubqueryScanState *node, ExprContext *exprCtxt){ EState *estate; MemoryContext oldcontext; estate = node->ss.ps.state; oldcontext = MemoryContextSwitchTo(node->sss_SubEState->es_query_cxt); /* * ExecReScan doesn't know about my subplan, so I have to do * changed-parameter signaling myself. This is just as well, because the * subplan has its own memory context in which its chgParam state lives. */ if (node->ss.ps.chgParam != NULL) UpdateChangedParamSet(node->subplan, node->ss.ps.chgParam); /* * if chgParam of subnode is not null then plan will be re-scanned by * first ExecProcNode. */ if (node->subplan->chgParam == NULL) ExecReScan(node->subplan, NULL); MemoryContextSwitchTo(oldcontext); node->ss.ss_ScanTupleSlot = NULL; node->ss.ps.ps_TupFromTlist = false;}
开发者ID:CraigBryan,项目名称:PostgresqlFun,代码行数:36,
示例5: ExecReScanRecursiveUnion/* ---------------------------------------------------------------- * ExecReScanRecursiveUnion * * Rescans the relation. * ---------------------------------------------------------------- */voidExecReScanRecursiveUnion(RecursiveUnionState *node){ PlanState *outerPlan = outerPlanState(node); PlanState *innerPlan = innerPlanState(node); RecursiveUnion *plan = (RecursiveUnion *) node->ps.plan; /* * Set recursive term's chgParam to tell it that we'll modify the working * table and therefore it has to rescan. */ innerPlan->chgParam = bms_add_member(innerPlan->chgParam, plan->wtParam); /* * if chgParam of subnode is not null then plan will be re-scanned by * first ExecProcNode. Because of above, we only have to do this to the * non-recursive term. */ if (outerPlan->chgParam == NULL) ExecReScan(outerPlan); /* Release any hashtable storage */ if (node->tableContext) MemoryContextResetAndDeleteChildren(node->tableContext); /* And rebuild empty hashtable if needed */ if (plan->numCols > 0) build_hash_table(node); /* reset processing state */ node->recursing = false; node->intermediate_empty = true; tuplestore_clear(node->working_table); tuplestore_clear(node->intermediate_table);}
开发者ID:LittleForker,项目名称:postgres,代码行数:41,
示例6: BitmapTableScanBeginPartition/* * Prepares for scanning of a new partition/relation. */voidBitmapTableScanBeginPartition(ScanState *node, bool initExpressions){ Assert(node != NULL); BitmapTableScanState *scanState = (BitmapTableScanState *)node; Assert(SCAN_NEXT == scanState->ss.scan_state); initBitmapState(scanState); if (scanState->bitmapqualorig == NULL || initExpressions) { /* TODO rahmaf2 [JIRA: MPP-23293]: remap columns per-partition to handle dropped columns */ scanState->bitmapqualorig = (List *) ExecInitExpr((Expr *) ((BitmapTableScan*)(node->ps.plan))->bitmapqualorig, (PlanState *) scanState); } scanState->needNewBitmapPage = true; scanState->recheckTuples = true; getBitmapTableScanMethod(node->tableType)->beginScanMethod(node); /* * Prepare child node to produce new bitmaps for the new partition (and cleanup * any leftover state from old partition). */ ExecReScan(outerPlanState(node), NULL);}
开发者ID:ictmalili,项目名称:incubator-hawq,代码行数:32,
示例7: ExecReScanAppendvoidExecReScanAppend(AppendState *node, ExprContext *exprCtxt){ int i; for (i = node->as_firstplan; i <= node->as_lastplan; i++) { PlanState *subnode = node->appendplans[i]; /* * ExecReScan doesn't know about my subplans, so I have to do * changed-parameter signaling myself. */ if (node->ps.chgParam != NULL) UpdateChangedParamSet(subnode, node->ps.chgParam); /* * if chgParam of subnode is not null then plan will be re-scanned * by first ExecProcNode. */ if (subnode->chgParam == NULL) { /* make sure estate is correct for this subnode (needed??) */ node->as_whichplan = i; exec_append_initialize_next(node); ExecReScan(subnode, exprCtxt); } } node->as_whichplan = node->as_firstplan; exec_append_initialize_next(node);}
开发者ID:sunyangkobe,项目名称:cscd43,代码行数:31,
示例8: BitmapTableScanReScan/* * Prepares for a rescan. */voidBitmapTableScanReScan(BitmapTableScanState *node, ExprContext *exprCtxt){ ScanState *scanState = &node->ss; Assert(scanState->tableType >= 0 && scanState->tableType < TableTypeInvalid); /* * If we are being passed an outer tuple, link it into the "regular" * per-tuple econtext for possible qual eval. */ if (exprCtxt != NULL) { ExprContext *stdecontext = node->ss.ps.ps_ExprContext; stdecontext->ecxt_outertuple = exprCtxt->ecxt_outertuple; } EState *estate = node->ss.ps.state; Index scanrelid = ((Scan *)(scanState->ps.plan))->scanrelid; /* If this is re-scanning of PlanQual ... */ if (estate->es_evTuple != NULL && estate->es_evTuple[scanrelid - 1] != NULL) { estate->es_evTupleNull[scanrelid - 1] = false; } DynamicScan_ReScan((ScanState *)node, BitmapTableScanEndPartition, exprCtxt); ExecReScan(outerPlanState(node), exprCtxt);}
开发者ID:ictmalili,项目名称:incubator-hawq,代码行数:33,
示例9: ExecReScanBitmapHeapScan/* ---------------------------------------------------------------- * ExecReScanBitmapHeapScan(node) * ---------------------------------------------------------------- */voidExecReScanBitmapHeapScan(BitmapHeapScanState *node){ /* rescan to release any page pin */ heap_rescan(node->ss.ss_currentScanDesc, NULL); 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); node->tbm = NULL; node->tbmiterator = NULL; node->tbmres = NULL; node->prefetch_iterator = NULL; ExecScanReScan(&node->ss); /* * if chgParam of subnode is not null then plan will be re-scanned by * first ExecProcNode. */ if (node->ss.ps.lefttree->chgParam == NULL) ExecReScan(node->ss.ps.lefttree);}
开发者ID:GisKook,项目名称:Gis,代码行数:30,
示例10: ExecReScanAppendvoidExecReScanAppend(AppendState *node, ExprContext *exprCtxt){ int i; for (i = node->as_firstplan; i <= node->as_lastplan; i++) { PlanState *subnode = node->appendplans[i]; /* * ExecReScan doesn't know about my subplans, so I have to do * changed-parameter signaling myself. */ if (node->ps.chgParam != NULL) UpdateChangedParamSet(subnode, node->ps.chgParam); /* * If chgParam of subnode is not null then plan will be re-scanned by * first ExecProcNode. However, if caller is passing us an exprCtxt * then forcibly rescan all the subnodes now, so that we can pass the * exprCtxt down to the subnodes (needed for appendrel indexscan). */ if (subnode->chgParam == NULL || exprCtxt != NULL) { /* make sure estate is correct for this subnode (needed??) */ node->as_whichplan = i; exec_append_initialize_next(node); ExecReScan(subnode, exprCtxt); } } node->as_whichplan = node->as_firstplan; exec_append_initialize_next(node);}
开发者ID:KMU-embedded,项目名称:mosbench-ext,代码行数:33,
示例11: ExecReScanSortvoidExecReScanSort(SortState *node, ExprContext *exprCtxt){ /* * If we haven't sorted yet, just return. If outerplan' chgParam is not * NULL then it will be re-scanned by ExecProcNode, else - no reason to * re-scan it at all. */ if (!node->sort_Done) return; /* must drop pointer to sort result tuple */ ExecClearTuple(node->ss.ps.ps_ResultTupleSlot); /* * If subnode is to be rescanned then we forget previous sort results; we * have to re-read the subplan and re-sort. * * Otherwise we can just rewind and rescan the sorted output. */ if (((PlanState *) node)->lefttree->chgParam != NULL || !node->randomAccess || (NULL == node->tuplesortstate->sortstore_mk && NULL == node->tuplesortstate->sortstore)) { node->sort_Done = false; if (gp_enable_mk_sort && NULL != node->tuplesortstate->sortstore_mk) { tuplesort_end_mk(node->tuplesortstate->sortstore_mk); } if (!gp_enable_mk_sort && NULL != node->tuplesortstate->sortstore) { tuplesort_end(node->tuplesortstate->sortstore); } /* * if chgParam of subnode is not null then plan will be re-scanned by * first ExecProcNode. */ if (((PlanState *) node)->lefttree->chgParam == NULL) { ExecReScan(((PlanState *) node)->lefttree, exprCtxt); } } else { if(gp_enable_mk_sort) { tuplesort_rescan_mk(node->tuplesortstate->sortstore_mk); } else { tuplesort_rescan(node->tuplesortstate->sortstore); } }}
开发者ID:huor,项目名称:gpdb,代码行数:57,
示例12: ExecReScanSetOpvoidExecReScanSetOp(SetOpState *node){ ExecClearTuple(node->ps.ps_ResultTupleSlot); node->setop_done = false; node->numOutput = 0; if (((SetOp *) node->ps.plan)->strategy == SETOP_HASHED) { /* * In the hashed case, if we haven't yet built the hash table then we * can just return; nothing done yet, so nothing to undo. If subnode's * chgParam is not NULL then it will be re-scanned by ExecProcNode, * else no reason to re-scan it at all. */ if (!node->table_filled) return; /* * If we do have the hash table and the subplan does not have any * parameter changes, then we can just rescan the existing hash table; * no need to build it again. */ if (node->ps.lefttree->chgParam == NULL) { ResetTupleHashIterator(node->hashtable, &node->hashiter); return; } } /* Release first tuple of group, if we have made a copy */ if (node->grp_firstTuple != NULL) { heap_freetuple(node->grp_firstTuple); node->grp_firstTuple = NULL; } /* Release any hashtable storage */ if (node->tableContext) MemoryContextResetAndDeleteChildren(node->tableContext); /* And rebuild empty hashtable if needed */ if (((SetOp *) node->ps.plan)->strategy == SETOP_HASHED) { build_hash_table(node); node->table_filled = false; } /* * if chgParam of subnode is not null then plan will be re-scanned by * first ExecProcNode. */ if (node->ps.lefttree->chgParam == NULL) ExecReScan(node->ps.lefttree);}
开发者ID:BioBD,项目名称:Hypothetical_Indexes,代码行数:55,
示例13: ExecReScanGroupvoidExecReScanGroup(GroupState *node, ExprContext *exprCtxt){ node->grp_done = FALSE; /* must clear first tuple */ ExecClearTuple(node->ss.ss_ScanTupleSlot); if (((PlanState *) node)->lefttree && ((PlanState *) node)->lefttree->chgParam == NULL) ExecReScan(((PlanState *) node)->lefttree, exprCtxt);}
开发者ID:CraigBryan,项目名称:PostgresqlFun,代码行数:11,
示例14: ExecBitmapTableReScan/* * Prepares the BitmapTableScanState for a re-scan. */voidExecBitmapTableReScan(BitmapTableScanState *node, ExprContext *exprCtxt){ BitmapTableScanReScan(node, exprCtxt); /* * Always rescan the input immediately, to ensure we can pass down any * outer tuple that might be used in index quals. */ CheckSendPlanStateGpmonPkt(&node->ss.ps); ExecReScan(outerPlanState(node), exprCtxt);}
开发者ID:phan-pivotal,项目名称:gpdb,代码行数:14,
示例15: ExecReScanBitmapHeapScan/* ---------------------------------------------------------------- * ExecReScanBitmapHeapScan(node) * ---------------------------------------------------------------- */voidExecReScanBitmapHeapScan(BitmapHeapScanState *node){ PlanState *outerPlan = outerPlanState(node); /* rescan to release any page pin */ heap_rescan(node->ss.ss_currentScanDesc, NULL); if (node->tbmiterator) tbm_end_iterate(node->tbmiterator); if (node->prefetch_iterator) tbm_end_iterate(node->prefetch_iterator); 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->tbm) tbm_free(node->tbm); node->tbm = NULL; node->tbmiterator = NULL; node->tbmres = NULL; node->prefetch_iterator = NULL; node->initialized = false; node->shared_tbmiterator = NULL; node->shared_prefetch_iterator = NULL; /* Reset parallel bitmap state, if present */ if (node->pstate) { dsa_area *dsa = node->ss.ps.state->es_query_dsa; node->pstate->state = BM_INITIAL; if (DsaPointerIsValid(node->pstate->tbmiterator)) tbm_free_shared_area(dsa, node->pstate->tbmiterator); if (DsaPointerIsValid(node->pstate->prefetch_iterator)) tbm_free_shared_area(dsa, node->pstate->prefetch_iterator); node->pstate->tbmiterator = InvalidDsaPointer; node->pstate->prefetch_iterator = InvalidDsaPointer; } ExecScanReScan(&node->ss); /* * if chgParam of subnode is not null then plan will be re-scanned by * first ExecProcNode. */ if (outerPlan->chgParam == NULL) ExecReScan(outerPlan);}
开发者ID:timmui,项目名称:postgres,代码行数:56,
示例16: ExecIndexScan/* ---------------------------------------------------------------- * ExecIndexScan(node) * ---------------------------------------------------------------- */TupleTableSlot *ExecIndexScan(IndexScanState *node){ /* * If we have runtime keys and they've not already been set up, do it now. */ if (node->iss_NumRuntimeKeys != 0 && !node->iss_RuntimeKeysReady) ExecReScan((PlanState *) node); return ExecScan(&node->ss, (ExecScanAccessMtd) IndexNext, (ExecScanRecheckMtd) IndexRecheck);}
开发者ID:aKhadiemik,项目名称:postgres,代码行数:17,
示例17: ExecReScanLimitvoidExecReScanLimit(LimitState *node, ExprContext *exprCtxt){ /* resetting lstate will force offset/limit recalculation */ node->lstate = LIMIT_INITIAL; /* * if chgParam of subnode is not null then plan will be re-scanned by * first ExecProcNode. */ if (((PlanState *) node)->lefttree->chgParam == NULL) ExecReScan(((PlanState *) node)->lefttree, exprCtxt);}
开发者ID:454135329,项目名称:gpdb,代码行数:13,
示例18: ExecReScanUniquevoidExecReScanUnique(UniqueState *node){ /* must clear result tuple so first input tuple is returned */ ExecClearTuple(node->ps.ps_ResultTupleSlot); /* * if chgParam of subnode is not null then plan will be re-scanned by * first ExecProcNode. */ if (node->ps.lefttree->chgParam == NULL) ExecReScan(node->ps.lefttree);}
开发者ID:csrajmohan,项目名称:PostgreSQL9.4_Fork,代码行数:13,
示例19: ExecReScanResultvoidExecReScanResult(ResultState *node){ node->rs_done = false; node->rs_checkqual = (node->resconstantqual == NULL) ? false : true; /* * If chgParam of subnode is not null then plan will be re-scanned by * first ExecProcNode. */ if (node->ps.lefttree && node->ps.lefttree->chgParam == NULL) ExecReScan(node->ps.lefttree);}
开发者ID:alvherre,项目名称:postgres,代码行数:14,
示例20: ExecReScanGroupvoidExecReScanGroup(GroupState *node, ExprContext *exprCtxt){ node->grp_done = FALSE; if (node->grp_firstTuple != NULL) { heap_freetuple(node->grp_firstTuple); node->grp_firstTuple = NULL; } if (((PlanState *) node)->lefttree && ((PlanState *) node)->lefttree->chgParam == NULL) ExecReScan(((PlanState *) node)->lefttree, exprCtxt);}
开发者ID:sunyangkobe,项目名称:cscd43,代码行数:14,
示例21: ExecIndexScan/* ---------------------------------------------------------------- * ExecIndexScan(node) * ---------------------------------------------------------------- */struct tupslot *ExecIndexScan(index_ss *node){ /* * If we have runtime keys and they've not already been set up, do it now. */ if (node->iss_NumRuntimeKeys != 0 && !node->iss_RuntimeKeysReady) ExecReScan((plan_state_n *) node); return ExecScan(&node->ss, (exec_scan_access_mtd_f*) IndexNext, (exec_scan_recheck_mtd_f*) IndexRecheck);}
开发者ID:colinet,项目名称:sqlix,代码行数:18,
示例22: ExecIndexScan/* ---------------------------------------------------------------- * ExecIndexScan(node) * ---------------------------------------------------------------- */TupleTableSlot *ExecIndexScan(IndexScanState *node){ /* * If we have runtime keys and they've not already been set up, do it now. */ if (node->iss_NumRuntimeKeys != 0 && !node->iss_RuntimeKeysReady) ExecReScan((PlanState *) node, NULL); /* * use IndexNext as access method */ return ExecScan(&node->ss, (ExecScanAccessMtd) IndexNext);}
开发者ID:leckie711,项目名称:incubator-hawq,代码行数:18,
示例23: ExecBitmapHeapReScan/* ---------------------------------------------------------------- * ExecBitmapHeapReScan(node) * ---------------------------------------------------------------- */voidExecBitmapHeapReScan(BitmapHeapScanState *node, ExprContext *exprCtxt){ EState *estate; Index scanrelid; estate = node->ss.ps.state; scanrelid = ((BitmapHeapScan *) node->ss.ps.plan)->scan.scanrelid; /* * If we are being passed an outer tuple, link it into the "regular" * per-tuple econtext for possible qual eval. */ if (exprCtxt != NULL) { ExprContext *stdecontext; stdecontext = node->ss.ps.ps_ExprContext; stdecontext->ecxt_outertuple = exprCtxt->ecxt_outertuple; } /* If this is re-scanning of PlanQual ... */ if (estate->es_evTuple != NULL && estate->es_evTuple[scanrelid - 1] != NULL) { estate->es_evTupleNull[scanrelid - 1] = false; } /* rescan to release any page pin */ heap_rescan(node->ss.ss_currentScanDesc, NULL); /* undo bogus "seq scan" count (see notes in ExecInitBitmapHeapScan) */ pgstat_discount_heap_scan(&node->ss.ss_currentScanDesc->rs_pgstat_info); if (node->tbm) tbm_free(node->tbm); node->tbm = NULL; node->tbmres = NULL; if (node->odbm) odbm_free(node->odbm); node->odbm = NULL; /* * Always rescan the input immediately, to ensure we can pass down any * outer tuple that might be used in index quals. */ ExecReScan(outerPlanState(node), exprCtxt);}
开发者ID:jaiminpan,项目名称:bizgres,代码行数:53,
示例24: ExecIndexOnlyScan/* ---------------------------------------------------------------- * ExecIndexOnlyScan(node) * ---------------------------------------------------------------- */static TupleTableSlot *ExecIndexOnlyScan(PlanState *pstate){ IndexOnlyScanState *node = castNode(IndexOnlyScanState, pstate); /* * If we have runtime keys and they've not already been set up, do it now. */ if (node->ioss_NumRuntimeKeys != 0 && !node->ioss_RuntimeKeysReady) ExecReScan((PlanState *) node); return ExecScan(&node->ss, (ExecScanAccessMtd) IndexOnlyNext, (ExecScanRecheckMtd) IndexOnlyRecheck);}
开发者ID:hasegeli,项目名称:postgres,代码行数:19,
示例25: ExecReScanResultvoidExecReScanResult(ResultState *node, ExprContext *exprCtxt){ node->rs_done = false; node->ps.ps_TupFromTlist = false; node->rs_checkqual = (node->resconstantqual == NULL) ? false : true; /* * if chgParam of subnode is not null then plan will be re-scanned by * first ExecProcNode. */ if (((PlanState *) node)->lefttree && ((PlanState *) node)->lefttree->chgParam == NULL) ExecReScan(((PlanState *) node)->lefttree, exprCtxt);}
开发者ID:alecclarke,项目名称:postgresql-8.1.4,代码行数:15,
示例26: ExecReScanRepeatvoidExecReScanRepeat(RepeatState *node, ExprContext *exprCtxt){ /* Clean out the tuple table */ ExecClearTuple(node->ps.ps_ResultTupleSlot); init_RepeatState(node); /* * if chgParam of subnode is not null then plan will be re-scanned by * first ExecProcNode. */ if (((PlanState *) node)->lefttree->chgParam == NULL) ExecReScan(((PlanState *) node)->lefttree, exprCtxt);}
开发者ID:50wu,项目名称:gpdb,代码行数:15,
示例27: ExecReScanSetOpvoidExecReScanSetOp(SetOpState *node, ExprContext *exprCtxt){ ExecClearTuple(node->ps.ps_ResultTupleSlot); node->ps.ps_OuterTupleSlot = NULL; node->subplan_done = false; node->numOutput = 0; /* * if chgParam of subnode is not null then plan will be re-scanned by * first ExecProcNode. */ if (((PlanState *) node)->lefttree->chgParam == NULL) ExecReScan(((PlanState *) node)->lefttree, exprCtxt);}
开发者ID:berkeley-cs186,项目名称:course-fa07,代码行数:15,
示例28: ExecChildRescan/* * ExecChildRescan * Helper function for rescanning child of materialize node */voidExecChildRescan(MaterialState *node, ExprContext *exprCtxt){ Assert(node); /* * if parameters of subplan have changed, then subplan will be rescanned by * first ExecProcNode. Otherwise, we need to rescan subplan here */ if (((PlanState *) node)->lefttree->chgParam == NULL) { Gpmon_M_Incr(GpmonPktFromMaterialState(node), GPMON_MATERIAL_RESCAN); CheckSendPlanStateGpmonPkt(&node->ss.ps); ExecReScan(((PlanState *) node)->lefttree, exprCtxt); } node->eof_underlying = false;}
开发者ID:BALDELab,项目名称:incubator-hawq,代码行数:20,
示例29: ExecReScanGroupvoidExecReScanGroup(GroupState *node){ PlanState *outerPlan = outerPlanState(node); node->grp_done = false; /* must clear first tuple */ ExecClearTuple(node->ss.ss_ScanTupleSlot); /* * if chgParam of subnode is not null then plan will be re-scanned by * first ExecProcNode. */ if (outerPlan->chgParam == NULL) ExecReScan(outerPlan);}
开发者ID:maksm90,项目名称:postgresql,代码行数:16,
示例30: ExecReScanGroupvoidExecReScanGroup(GroupState *node){ node->grp_done = FALSE; node->ss.ps.ps_TupFromTlist = false; /* must clear first tuple */ ExecClearTuple(node->ss.ss_ScanTupleSlot); /* * if chgParam of subnode is not null then plan will be re-scanned by * first ExecProcNode. */ if (node->ss.ps.lefttree && node->ss.ps.lefttree->chgParam == NULL) ExecReScan(node->ss.ps.lefttree);}
开发者ID:neoeahit,项目名称:postgres,代码行数:16,
注:本文中的ExecReScan函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ ExecStoreTuple函数代码示例 C++ ExecInitScanTupleSlot函数代码示例 |