There is a ProjectableFilterableTable[1] that can be both used for filter and 
projects push down, have a try :)

[1] 
https://github.com/apache/calcite/blob/996cdd0249a4e5086fadc27a15ccc23eb9defd8e/core/src/main/java/org/apache/calcite/schema/ProjectableFilterableTable.java#L36

Best,
Danny Chan
在 2019年8月12日 +0800 AM7:55,Lekshmi <lekshmib...@gmail.com>,写道:
> Hi Danny Chan,
> Thank you so much for responding to my email. Can we use, Translatable
> table instead of Filterable table? which is more efficient? Usecase that if
> need to write a Project push down (Push down Project fields into table scan
> then do Filtering) and Filter push down?
> Or Filterable table is enough to use Project push down as well?
> Thanks and Regards
>
> Lekshmi B.G
> Email: lekshmib...@gmail.com
>
>
>
>
> On Fri, Aug 9, 2019 at 11:15 AM Danny Chan <yuzhao....@gmail.com> wrote:
>
> > Hi, Lekshmi ~
> >
> >
> > The FilterableTable can be scanned with a list of filter expression, that
> > means the filter conditions above the project + scan can be
> > pushed directly into the table scan[1][2], which is more efficient. Here is
> > a CsvFilterableTable example [3].
> >
> > [1]
> > https://github.com/apache/calcite/blob/602b2a10e3f81888c0759ca69f7415497124ef82/core/src/main/java/org/apache/calcite/rel/rules/FilterTableScanRule.java#L130
> > [2]
> > https://github.com/apache/calcite/blob/602b2a10e3f81888c0759ca69f7415497124ef82/core/src/main/java/org/apache/calcite/rel/rules/ProjectTableScanRule.java#L128
> > [3]
> > https://github.com/apache/calcite/blob/602b2a10e3f81888c0759ca69f7415497124ef82/example/csv/src/main/java/org/apache/calcite/adapter/csv/CsvFilterableTable.java#L65
> >
> > Best,
> > Danny Chan
> > 在 2019年8月8日 +0800 PM10:56,dev@calcite.apache.org,写道:
> > >
> > > Filterable
> >

Reply via email to