On 21.10.21 12:55, Alexander Pyhalov wrote:
> Now aggregates with internal states can be pushed down, if they are
> marked as pushdown safe (this flag is set to true for min/max/sum),
> have internal states and associated converters. Converters are called
> locally, they transform aggregate result to serialized internal
> representation.
> As converters don't have access to internal aggregate state, partial
> aggregates like avg() are still not pushable.
It seems to me that the system should be able to determine from the
existing aggregate catalog entry whether an aggregate can be pushed
down. For example, it could check aggtranstype != internal and similar.
A separate boolean flag should not be necessary. Or if it is, the
patch should provide some guidance about how an aggregate function
author should set it.