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.
>

Reply via email to