MCPcopy Create free account
hub / github.com/apache/cloudberry / ExecReScanBitmapHeapScan

Function ExecReScanBitmapHeapScan

src/backend/executor/nodeBitmapHeapscan.c:654–695  ·  view source on GitHub ↗

---------------------------------------------------------------- * ExecReScanBitmapHeapScan(node) * ---------------------------------------------------------------- */

Source from the content-addressed store, hash-verified

652 * ----------------------------------------------------------------
653 */
654void
655ExecReScanBitmapHeapScan(BitmapHeapScanState *node)
656{
657 PlanState *outerPlan = outerPlanState(node);
658
659 /* rescan to release any page pin */
660 table_rescan(node->ss.ss_currentScanDesc, NULL);
661
662 /* release bitmaps and buffers if any */
663 if (node->tbmiterator)
664 tbm_generic_end_iterate(node->tbmiterator);
665 if (node->prefetch_iterator)
666 tbm_generic_end_iterate(node->prefetch_iterator);
667 if (node->shared_tbmiterator)
668 tbm_end_shared_iterate(node->shared_tbmiterator);
669 if (node->shared_prefetch_iterator)
670 tbm_end_shared_iterate(node->shared_prefetch_iterator);
671 if (node->tbm)
672 tbm_generic_free(node->tbm);
673 if (node->vmbuffer != InvalidBuffer)
674 ReleaseBuffer(node->vmbuffer);
675 if (node->pvmbuffer != InvalidBuffer)
676 ReleaseBuffer(node->pvmbuffer);
677 node->tbm = NULL;
678 node->tbmiterator = NULL;
679 node->tbmres = NULL;
680 node->prefetch_iterator = NULL;
681 node->initialized = false;
682 node->shared_tbmiterator = NULL;
683 node->shared_prefetch_iterator = NULL;
684 node->vmbuffer = InvalidBuffer;
685 node->pvmbuffer = InvalidBuffer;
686
687 ExecScanReScan(&node->ss);
688
689 /*
690 * if chgParam of subnode is not null then plan will be re-scanned by
691 * first ExecProcNode.
692 */
693 if (outerPlan->chgParam == NULL)
694 ExecReScan(outerPlan);
695}
696
697/* ----------------------------------------------------------------
698 * ExecEndBitmapHeapScan

Callers 1

ExecReScanFunction · 0.85

Calls 7

table_rescanFunction · 0.85
tbm_generic_end_iterateFunction · 0.85
tbm_end_shared_iterateFunction · 0.85
tbm_generic_freeFunction · 0.85
ReleaseBufferFunction · 0.85
ExecScanReScanFunction · 0.85
ExecReScanFunction · 0.85

Tested by

no test coverage detected