You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Julian Hyde (JIRA)" <ji...@apache.org> on 2017/05/05 20:06:04 UTC

[jira] [Created] (CALCITE-1775) Druid adapter: "GROUP BY ()" on empty relation should return 1 row

Julian Hyde created CALCITE-1775:
------------------------------------

             Summary: Druid adapter: "GROUP BY ()" on empty relation should return 1 row
                 Key: CALCITE-1775
                 URL: https://issues.apache.org/jira/browse/CALCITE-1775
             Project: Calcite
          Issue Type: Bug
          Components: druid
            Reporter: Julian Hyde
            Assignee: Julian Hyde


A "GROUP BY ()" query on an empty relation should return 1 row, but currently returns 0 rows. 

Test case in {{DruidAdapterIT}}:

{code}
  @Test public void testSelectCountEmpty() {
    sql("select count(*) as c from \"foodmart\" where \"product_id\" < 0")
        .returnsUnordered("C=0");
    sql("select count(*) as c from \"foodmart\" where 1 < 0")
        .returnsUnordered("C=0");
  }
{code}

Both queries should return one row. The first returns 0 rows; the second query throws

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