You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Jark Wu (JIRA)" <ji...@apache.org> on 2019/08/16 03:50:00 UTC

[jira] [Created] (FLINK-13742) Fix code generation when aggregation contains both distinct aggregate with and without filter

Jark Wu created FLINK-13742:
-------------------------------

             Summary: Fix code generation when aggregation contains both distinct aggregate with and without filter
                 Key: FLINK-13742
                 URL: https://issues.apache.org/jira/browse/FLINK-13742
             Project: Flink
          Issue Type: Bug
          Components: Table SQL / Planner
            Reporter: Jark Wu
             Fix For: 1.9.1


The following test will fail when the aggregation contains {{COUNT(DISTINCT c)}} and {{COUNT(DISTINCT c) filter ...}}.

{code:java}
	  @Test
  def testDistinctWithMultiFilter(): Unit = {
    val sqlQuery =
      "SELECT b, " +
        "  SUM(DISTINCT (a * 3)), " +
        "  COUNT(DISTINCT SUBSTRING(c FROM 1 FOR 2))," +
        "  COUNT(DISTINCT c)," +
        "  COUNT(DISTINCT c) filter (where MOD(a, 3) = 0)," +
        "  COUNT(DISTINCT c) filter (where MOD(a, 3) = 1) " +
        "FROM MyTable " +
        "GROUP BY b"
    val t = failingDataSource(StreamTestData.get3TupleData).toTable(tEnv).as('a, 'b, 'c)
    tEnv.registerTable("MyTable", t)
    val result = tEnv.sqlQuery(sqlQuery).toRetractStream[Row]
    val sink = new TestingRetractSink
    result.addSink(sink)
    env.execute()
    val expected = List(
      "1,3,1,1,0,1",
      "2,15,1,2,1,0",
      "3,45,3,3,1,1",
      "4,102,1,4,1,2",
      "5,195,1,5,2,1",
      "6,333,1,6,2,2")
    assertEquals(expected.sorted, sink.getRetractResults.sorted)
  }
{code}




--
This message was sent by Atlassian JIRA
(v7.6.14#76016)