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

slim bouguerra commented on CALCITE-1777:
-----------------------------------------

[~julianhyde] You are right this patch fixes that specific case.
Fixing the general issue might be more invasive change.
The way i will do it i will parse the filter tree at FilterRule class and try 
to generate the Druid Json and  push the filter only and only if i have a valid 
Druid filter like we can be 100% sure we can push it.
As you can see this approach is totally different from current way of doing 
things where we use isValidFilter not sure if that is the way how calcite 
community like thing to be done ?
What do you think about the approach ? 
How about fix this small issue and tackle the bigger one in a different scope ? 



> Druid adapter: "WHERE FALSE" causes AssertionError
> --------------------------------------------------
>
>                 Key: CALCITE-1777
>                 URL: https://issues.apache.org/jira/browse/CALCITE-1777
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: Julian Hyde
>            Assignee: Julian Hyde
>
> Query with "WHERE FALSE" gives AssertionError in Druid adapter.
> Originally logged as part of CALCITE-1775. Test case in {{DruidAdapterIT}}:
> {code}
>   @Test public void testSelectCountFalse() {
>     sql("select count(*) as c from \"foodmart\" where 1 < 0")
>         .returnsUnordered("C=0");
>   }
> {code}
> gives
> {noformat}
> java.lang.AssertionError: cannot translate filter: false
>       at 
> org.apache.calcite.adapter.druid.DruidQuery$Translator.translateFilter(DruidQuery.java:1067)
>       at 
> org.apache.calcite.adapter.druid.DruidQuery$Translator.access$000(DruidQuery.java:933)
>       at 
> org.apache.calcite.adapter.druid.DruidQuery.getQuery(DruidQuery.java:497)
>       at 
> org.apache.calcite.adapter.druid.DruidQuery.deriveQuerySpec(DruidQuery.java:470)
>       at 
> org.apache.calcite.adapter.druid.DruidQuery.getQuerySpec(DruidQuery.java:414)
>       at 
> org.apache.calcite.adapter.druid.DruidQuery.deriveRowType(DruidQuery.java:308)
>       at 
> org.apache.calcite.rel.AbstractRelNode.getRowType(AbstractRelNode.java:224)
>       at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.register(VolcanoPlanner.java:857)
>       at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:883)
>       at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:1769)
>       at 
> org.apache.calcite.plan.volcano.VolcanoRuleCall.transformTo(VolcanoRuleCall.java:135)
>       at 
> org.apache.calcite.plan.RelOptRuleCall.transformTo(RelOptRuleCall.java:225)
>       at 
> org.apache.calcite.adapter.druid.DruidRules$DruidFilterRule.onMatch(DruidRules.java:228)
>       at 
> org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:211)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to