Konstantin Orlov created IGNITE-19785:
-----------------------------------------

             Summary: 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


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)

Reply via email to