Hi Chunwei, Thanks for confirming, I will check if it's easily doable in calcite.
On Tue, Aug 9, 2022 at 7:27 PM Chunwei Lei <[email protected]> wrote: > Hi, Jay. > > As far as I know, there is no existing functionality that can do this job. > We have the same requirement, especially when having to check whether > the plan is correct. So I'm more than glad to have this feature. > > P.S. Apache Flink has done the job for its physical plan. > > Best, > Chunwei > > > On Wed, Aug 10, 2022 at 5:28 AM Jay Narale <[email protected]> > wrote: > > > Hello dev community, > > Long calcite plans are very hard to debug sometimes because of our > > filter, aggregate expressions involve InputReferences which are hard to > > quickly follow down the tree. > > > > eg -> JoinRel(condition=[=($0, $2)], joinType=[inner]) > > Filter ( condition=[$0 = 100]) > > AggregateRel(group=[{0}], sun_sales=[SUM($1)], mon_sales=[SUM($2)] > > > > Better Plans -> > > JoinRel( condition=[(tableName1.columnName, tableName2.columnName2)] ) > > ... > > > > I can override RelMdExpressionLineage for this use case for RexNodes like > > for Joins and Filters but AggregateCalls cannot be handled properly by > this > > relMd. > > Is there any existing functionality that I missed that already has > the > > functionality for this use case or should we work on a new writer or add > a > > visitor internally in calcite to transform this plan into a better human > > readable plan. There can also be a few more operators than need this > > "readable transformation" > > > > Warm Regards, > > > > Jay Narale > > > > [1] > > > > > https://github.com/apache/calcite/blob/7e0057e8de93930f1b2952a1cbcee8ad7a6bfb4b/core/src/main/java/org/apache/calcite/rel/metadata/RelMdExpressionLineage.java > > > -- Warm Regards, Jay Narale
