[ 
https://issues.apache.org/jira/browse/CALCITE-584?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14308006#comment-14308006
 ] 

Vladimir Sitnikov commented on CALCITE-584:
-------------------------------------------

{quote}Handling rejected filters – at run time – is a really important 
requirement, and it is something that EnumerableTableScan simply cannot 
do.{quote}
On contrary, it can do that like a charm.

Here's my card:
1) Compile all kinds of fillters when compiling EnumerableTableScan. For 
instance, each filter to separate method.
2) At runtime, call {{.scan}}, then analyze which filters did pass through and 
just avoid extra filtering by the generated code (e.g. several plain old 
boolean fields).

It allows you to compute proper result while it keeps code manageable and 
performance in a good health.

Well, EnumerableTableScan can even ignore the verification of rejected filters. 
It can always double-check "just in case". We can treat is as a missing 
optimization and still comply with "support of rejected filters" requirement as 
we do not declare Scannable to be a top performance dog yet.

> Allow TableMacro to return Table other than TranslatableTable
> -------------------------------------------------------------
>
>                 Key: CALCITE-584
>                 URL: https://issues.apache.org/jira/browse/CALCITE-584
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: Julian Hyde
>            Assignee: Julian Hyde
>
> The TableMacro.apply method used to return Table but in 
> https://github.com/apache/incubator-calcite/commit/aa1f0983c126c23466deb990c96d6ff2dffd908c
>  this changed to TranslatableTable. It seems reasonable to allow TableMacro 
> to return other sub-types of Table, for example ScannableTable.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to