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

Konstantin Orlov updated IGNITE-25471:
--------------------------------------
    Fix Version/s: 3.1

> Sql. Introduce custom infrastructure for rel explanation
> --------------------------------------------------------
>
>                 Key: IGNITE-25471
>                 URL: https://issues.apache.org/jira/browse/IGNITE-25471
>             Project: Ignite
>          Issue Type: Improvement
>          Components: sql ai3
>            Reporter: Konstantin Orlov
>            Assignee: Konstantin Orlov
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.1
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently, we are taking an advantage of 
> {{org.apache.calcite.rel.RelNode#explain(org.apache.calcite.rel.RelWriter)}}. 
> This approach has number of drawbacks.
> First, we don't have necessary control over attributers included into 
> printout. For example,   the output of {{TableModify}} node contains 
> attributes {{sourceExpressionList}} and {{flattened}} which doesn't make 
> sense in our case. This can be WA'ed by inlining all the explainTerms of 
> parent rel within {{IgniteTableModify}}, but there is a chance to break 
> serialization in case new attributes is introduced in upcoming release.
> Second, we are resolving indexes into column names, and sometimes you need to 
> know context to do it properly. For example, {{IgniteMergeJoin}} has 
> {{leftCollation}} and {{rightCollation}} which must be resolved with lhs or 
> rhs row type respectively. The context is available in 
> {{org.apache.ignite.internal.sql.engine.rel.IgniteMergeJoin#explainTerms}}, 
> but is completely lost in relation-agnostic {{RelWriter}}.
> Given that said, it would be beneficial to introduce distinct infrastructure 
> to printout relations for EXPLAIN command.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to