[ 
https://issues.apache.org/jira/browse/IGNITE-19785?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yury Gerzhedovich updated IGNITE-19785:
---------------------------------------
    Description: 
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

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



> 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
>            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)

Reply via email to