Filed a JIRA: https://issues.apache.org/jira/browse/CALCITE-3405
Haisheng Yuan <h.y...@alibaba-inc.com> 于2019年10月12日周六 上午4:34写道: > Yes, definitely. > > You can go through the project expression with InputFinder to find all the > used columns, create a logical project with those columns, and remap the > top project with new column indexes. > > On the other hand, instead of creating a new intermidiate pogical project, > we can also update ProjectTableScanRule to accept LogicalProject that is > not a simple mapping, and do the same task I mentioned above. > > - Haisheng > > ------------------------------------------------------------------ > 发件人:Rommel Quintanilla<rom...@blazingdb.com> > 日 期:2019年10月12日 03:15:31 > 收件人:<dev@calcite.apache.org> > 主 题:[QUESTION] Pushing up evaluations from LogicalProjects > > Hi, maybe you can help me. > I have this portion from a larger logical plan: > .. > LogicalProject(l_orderkey=[$0], l_suppkey=[$2], *=[*($5, -(1, > $6))]) > LogicalTableScan(table=[[main, lineitem]]) > .. > > Because the LogicalProject above contains an evaluation, the > ProjectTableScanRule can't convert it to a BindableTableScan. > > I wonder if somehow the evaluation could be pushed up more or less like > this: > .. > LogicalProject(l_orderkey=[$0], l_suppkey=[$1], *=[*($2, -(1, $3))]) > LogicalProject(l_orderkey=[$0], l_suppkey=[$2], l_extendedprice=[$5], > l_discount=[$6]]) > LogicalTableScan(table=[[main, lineitem]]) > .. > > Regards. >