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