Dean Rasheed <> writes:
> On 10 April 2014 19:04, Tom Lane <> 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

Sent via pgsql-hackers mailing list (
To make changes to your subscription:

Reply via email to