You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Gian Merlino (JIRA)" <ji...@apache.org> on 2017/07/29 23:18:01 UTC

[jira] [Created] (CALCITE-1910) NPE on filtered aggregators using "IN"

Gian Merlino created CALCITE-1910:
-------------------------------------

             Summary: NPE on filtered aggregators using "IN"
                 Key: CALCITE-1910
                 URL: https://issues.apache.org/jira/browse/CALCITE-1910
             Project: Calcite
          Issue Type: Bug
          Components: core
            Reporter: Gian Merlino
            Assignee: Julian Hyde


This test causes an NPE in SqlToRelConverter. I haven't figured out why, but I guess it has something to do with not calling "replaceSubQueries" on the second arg of the FILTER SqlNode.

{code}
  @Test public void testAggFilterWithIn() {
    final String sql = "select\n"
        + "  deptno, sum(sal * 2) filter (where empno not in (1, 2)), count(*)\n"
        + "from emp\n"
        + "group by deptno";
    sql(sql).ok();
  }
{code}

The stack trace is:

{code}
java.lang.NullPointerException
	at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:212)
	at org.apache.calcite.sql2rel.SqlToRelConverter$Blackboard.convertExpression(SqlToRelConverter.java:4426)
	at org.apache.calcite.sql2rel.SqlToRelConverter$AggConverter.translateAgg(SqlToRelConverter.java:4888)
	at org.apache.calcite.sql2rel.SqlToRelConverter$AggConverter.visit(SqlToRelConverter.java:4819)
	at org.apache.calcite.sql2rel.SqlToRelConverter$AggConverter.visit(SqlToRelConverter.java:4663)
	at org.apache.calcite.sql.SqlCall.accept(SqlCall.java:137)
	at org.apache.calcite.sql2rel.SqlToRelConverter$AggConverter.visit(SqlToRelConverter.java:4795)
	at org.apache.calcite.sql2rel.SqlToRelConverter$AggConverter.visit(SqlToRelConverter.java:4663)
	at org.apache.calcite.sql.SqlNodeList.accept(SqlNodeList.java:153)
	at org.apache.calcite.sql2rel.SqlToRelConverter.createAggImpl(SqlToRelConverter.java:2715)
	at org.apache.calcite.sql2rel.SqlToRelConverter.convertAgg(SqlToRelConverter.java:2656)
	at org.apache.calcite.sql2rel.SqlToRelConverter.convertSelectImpl(SqlToRelConverter.java:658)
	at org.apache.calcite.sql2rel.SqlToRelConverter.convertSelect(SqlToRelConverter.java:620)
	at org.apache.calcite.sql2rel.SqlToRelConverter.convertQueryRecursive(SqlToRelConverter.java:3066)
	at org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:556)
	at org.apache.calcite.test.SqlToRelTestBase$TesterImpl.convertSqlToRel(SqlToRelTestBase.java:574)
	at org.apache.calcite.test.SqlToRelTestBase$TesterImpl.assertConvertsTo(SqlToRelTestBase.java:682)
	at org.apache.calcite.test.SqlToRelConverterTest$Sql.convertsTo(SqlToRelConverterTest.java:2676)
	at org.apache.calcite.test.SqlToRelConverterTest$Sql.ok(SqlToRelConverterTest.java:2668)
	at org.apache.calcite.test.SqlToRelConverterTest.testAggFilterWithIn(SqlToRelConverterTest.java:477)
{code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)