If _evaluate_cumulative_extfn is not supplied, this cumulative sum is evaluated through the following calling pattern, which is less efficient than _evaluate_cumulative_extfn.
select b, my_sum(a) over (partition by b rows between unbounded preceding and current row) from t order by b
_start_extfn(cntxt) _reset_extfn(cntxt) _next_value_extfn(cntxt, args) -- input a=1 _evaluate_extfn(cntxt, args) -- returns 1 _next_value_extfn(cntxt, args) -- input a=2 _evaluate_extfn(cntxt, args) -- returns 3 _next_value_extfn(cntxt, args) -- input a=3 _evaluate_extfn(cntxt, args) -- returns 6 _reset_extfn(cntxt) _next_value_extfn(cntxt, args) -- input a=4 _evaluate_extfn(cntxt, args) -- returns 4 _next_value_extfn(cntxt, args) -- input a=5 _evaluate_extfn(cntxt, args) -- returns 9 _next_value_extfn(cntxt, args) -- input a=6 _evaluate_extfn(cntxt, args) -- returns 15 _finish_extfn(cntxt)