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

Function ExecEndWindowAgg

src/backend/executor/nodeWindowAgg.c:2894–2932  ·  view source on GitHub ↗

----------------- * ExecEndWindowAgg * ----------------- */

Source from the content-addressed store, hash-verified

2892 * -----------------
2893 */
2894void
2895ExecEndWindowAgg(WindowAggState *node)
2896{
2897 PlanState *outerPlan;
2898 int i;
2899
2900 release_partition(node);
2901
2902 ExecClearTuple(node->ss.ss_ScanTupleSlot);
2903 ExecClearTuple(node->first_part_slot);
2904 ExecClearTuple(node->agg_row_slot);
2905 ExecClearTuple(node->temp_slot_1);
2906 ExecClearTuple(node->temp_slot_2);
2907 if (node->framehead_slot)
2908 ExecClearTuple(node->framehead_slot);
2909 if (node->frametail_slot)
2910 ExecClearTuple(node->frametail_slot);
2911
2912 /*
2913 * Free both the expr contexts.
2914 */
2915 ExecFreeExprContext(&node->ss.ps);
2916 node->ss.ps.ps_ExprContext = node->tmpcontext;
2917 ExecFreeExprContext(&node->ss.ps);
2918
2919 for (i = 0; i < node->numaggs; i++)
2920 {
2921 if (node->peragg[i].aggcontext != node->aggcontext)
2922 MemoryContextDelete(node->peragg[i].aggcontext);
2923 }
2924 MemoryContextDelete(node->partcontext);
2925 MemoryContextDelete(node->aggcontext);
2926
2927 pfree(node->perfunc);
2928 pfree(node->peragg);
2929
2930 outerPlan = outerPlanState(node);
2931 ExecEndNode(outerPlan);
2932}
2933
2934/* -----------------
2935 * ExecReScanWindowAgg

Callers 1

ExecEndNodeFunction · 0.85

Calls 5

release_partitionFunction · 0.85
ExecClearTupleFunction · 0.85
ExecFreeExprContextFunction · 0.85
ExecEndNodeFunction · 0.85
pfreeFunction · 0.50

Tested by

no test coverage detected