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