[
https://issues.apache.org/jira/browse/IGNITE-19785?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Maksim Zhuravkov reassigned IGNITE-19785:
-----------------------------------------
Assignee: Maksim Zhuravkov
> Sql. Rework execution of 2-phase aggregates
> -------------------------------------------
>
> Key: IGNITE-19785
> URL: https://issues.apache.org/jira/browse/IGNITE-19785
> Project: Ignite
> Issue Type: Improvement
> Components: sql
> Reporter: Konstantin Orlov
> Assignee: Maksim Zhuravkov
> Priority: Major
> Labels: ignite-3
>
> As of now, every aggregate node may be one of three types (see
> {{{}org.apache.ignite.internal.sql.engine.exec.exp.agg.AggregateType{}}}) and
> has two different behaviour (for example, see
> {{{}org.apache.ignite.internal.sql.engine.exec.rel.HashAggregateNode.Grouping#addOn[Mapper|Reducer]{}}}).
> Besides, type of the row on map phase can't be represented by a plain tuple
> since it contains pojo as elements ({{{}Grouping{}}} and
> {{{}Accumulator{}}}'s).
> All this creates unnecessary complexity while doesn't bring any benefit.
> Let's rework this part in order to decrease complexity, as well as prepare
> the ground to migrate sql engine on a new type of row (based on BinaryTuple).
> h4. Implementation notes
> * There should be no difference in behaviour between MAP, REDUCE or
> COLOCATED aggregate node
> * Thus {{AggregateType}} should be removed
> * {{org.apache.ignite.internal.sql.engine.exec.exp.agg.Accumulator}} now is
> local entity, thus it should not implement {{Serializable}} anymore
--
This message was sent by Atlassian Jira
(v8.20.10#820010)