Konstantin Orlov created IGNITE-24196:
-----------------------------------------

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


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)

Reply via email to