[
https://issues.apache.org/jira/browse/IGNITE-24196?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Konstantin Orlov reassigned IGNITE-24196:
-----------------------------------------
Assignee: Konstantin Orlov
> Sql. Merge projection into join node
> ------------------------------------
>
> Key: IGNITE-24196
> URL: https://issues.apache.org/jira/browse/IGNITE-24196
> Project: Ignite
> Issue Type: Improvement
> Components: sql
> Reporter: Konstantin Orlov
> Assignee: Konstantin Orlov
> Priority: Major
> Labels: ignite-3
>
> Join reordering adds a projection node on top of the join to restore row
> schema as it was before reordering. Current implementation treats such plan
> as separate node, therefore first, rows will be joined together, then
> resulting rows will be rebuilt in order to restore original schema.
> This can be improved by joining together execution of projection and join
> nodes.
> The suggested improvement as follow:
> # In {{LogicalRelImplementor}}, if we see {{IgniteProject}} on top of any
> join node, then put the former on stack and proceed with join
> # In {{LogicalRelImplementor}}, if we see any join node, then first check
> projection on stack. If present, then create {{SqlJoinProjection}} (similar
> to {{SqlJoinPredicate}}) from the projection on stack, otherwise create
> identity projection
> # In join node, use created {{SqlJoinProjection}} instead of
> {{RowHandler.RowFactory#concat}}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)