OLAP-style unoptimized cumulative window aggregate

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.

Query

select b, my_sum(a) over (partition by b
rows between unbounded preceding and current row)
from t 
order by b

Calling pattern

_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)

Result

b,  my_sum(a)
1,  1
1,  3
1,  6
2,  4
2,  9
2,  15