calcite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Danny Chan <yuzhao....@gmail.com>
Subject Re: Filterable table
Date Mon, 12 Aug 2019 05:41:35 GMT
Thanks, Albert ~

The ProjectableFilterableTable is indeed a little redundant, because we already have ProjectableTable
and FilterableTable, I think we can do some refactoring to reduce such mixed in interfaces.

BTW, what do you mean by aggregate push down ? I can not figure out in which case you need
such feature, can you share to us your use cases ?

Best,
Danny Chan
在 2019年8月12日 +0800 PM12:20,Albert <zinking3@gmail.com>,写道:
> talking about this class reminds me of my own usage of
> ProjectableFilterable. it works.
> but this feels like a very bad design, what if I want to push down
> Aggregation ? AggregatableProjectableFilterable?
>
> I don't know the intention of the initial design, but this just doesn't
> feel right.
>
> On Mon, Aug 12, 2019 at 9:35 AM Danny Chan <yuzhao.cyz@gmail.com> wrote:
>
> > 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 <lekshmibg09@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: lekshmibg09@gmail.com
> > >
> > >
> > >
> > >
> > > On Fri, Aug 9, 2019 at 11:15 AM Danny Chan <yuzhao.cyz@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
> > > >
> >
>
>
> --
> ~~~~~~~~~~~~~~~
> no mistakes
> ~~~~~~~~~~~~~~~~~~

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message