Dean Rasheed <dean.a.rasheed@gmail.com> writes:
> On 10 April 2014 19:04, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> What about names for the invertible-aggregate infrastructure?
>> I'm tempted to prefix "inv" to all the existing names, but then
>> "invsfunc" means the alternate forward function ... can we use
>> "invifunc" for the inverse transition function? Or maybe the
>> prefix should be just "i".
> Hmm, I'm not a fan of any of those names. Perhaps "win" as a prefix to
> denote a sliding window? Or just "m" for "moving aggregate".
Hmm ... "moving aggregate" is actually a pretty good name for this
whole feature -- better than "invertible aggregate" anyway. I can
feel a global-search-and-replace coming on.
So if we go with that terminology, perhaps these names for the
new CREATE AGGREGATE parameters:
initfunc applies to plain aggregation, mutually exclusive with initcond
msfunc (or just mfunc?) forward transition for moving-agg mode
mifunc inverse transition for moving-agg mode
mstype state datatype for moving-agg mode
msspace space estimate for mstype
mfinalfunc final function for moving-agg mode
minitfunc "firsttrans" for moving-agg mode
minitcond mutually exclusive with minitfunc
That takes us up to 16 columns in pg_aggregate, but it's still not going
to be a very voluminous catalog --- there's only 171 rows there today.
So I'm not particularly concerned about space, and if there's a chance
of squeezing out cycles, I think we should seize it.
regards, tom lane