Can we just use  Bindables.BINDABLE_TABLE_SCAN_RULE to translate  the table 
scan to BindableTableScan ?



--

Best,
Wang Yanlin



At 2019-10-12 17:12:20, "XING JIN" <jinxing.co...@gmail.com> wrote:
>Hi Stamatis,
>In current code, BindableTableScan is only created by rules of
>ProjectTableScanRule and FilterTableScanRule. I think it's better to keep
>as it is?
>I made a PR for CALCITE-3405  -- https://github.com/apache/calcite/pull/1500
>
>The idea of the PR is quite straightforward:
>1. Analyze the parent Project -- collect all the needed fields;
>2. Column pruning by pushing down the needed fields to BindableTableScan;
>3. Adjust RexInputRefs in parent Project
>
>@Haisheng @Stamatis It would be great if you can give a review when you
>have time ~~~ Thanks a lot !
>
>Best,
>Jin
>
>
>Stamatis Zampetakis <zabe...@gmail.com> 于2019年10月12日周六 下午3:00写道:
>
>> Hi Rommel,
>>
>> I was hoping that this could be done at least by RelFieldTrimmer [1]. Are
>> you using it already?
>>
>> Best,
>> Stamatis
>>
>> [1]
>>
>> https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/sql2rel/RelFieldTrimmer.java
>>
>> On Sat, Oct 12, 2019 at 6:06 AM XING JIN <jinxing.co...@gmail.com> wrote:
>>
>> > 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