You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Shuo Cheng (Jira)" <ji...@apache.org> on 2020/05/13 07:49:00 UTC

[jira] [Created] (FLINK-17651) DecomposeGroupingSetsRule generates wrong plan when there exist distinct agg and simple agg with same filter

Shuo Cheng created FLINK-17651:
----------------------------------

             Summary: DecomposeGroupingSetsRule generates wrong plan when there exist distinct agg and simple agg with same filter
                 Key: FLINK-17651
                 URL: https://issues.apache.org/jira/browse/FLINK-17651
             Project: Flink
          Issue Type: Bug
          Components: Table SQL / Planner
    Affects Versions: 1.10.1
            Reporter: Shuo Cheng
             Fix For: 1.11.0


Consider adding the following test case to org.apache.flink.table.planner.runtime.batch.sql.agg.AggregateITCaseBase. As you can see, the actual result is wrong.

 
{code:java}
@Test
def testSimpleAndDistinctAggWithCommonFilter(): Unit = {
  val sql =
    """
      |SELECT
      |   h,
      |   COUNT(1) FILTER(WHERE d > 1),
      |   COUNT(1) FILTER(WHERE d < 2),
      |   COUNT(DISTINCT e) FILTER(WHERE d > 1)
      |FROM Table5
      |GROUP BY h
      |""".stripMargin
  checkResult(
    sql,
    Seq(
      row(1,4,1,4),
      row(2,7,0,7),
      row(3,3,0,3)
    )
  )
}

Results
 == Correct Result ==   == Actual Result ==
 1,4,1,4                    1,0,1,4
 2,7,0,7                    2,0,0,7
 3,3,0,3                    3,0,0,3
{code}
The problem lies in `DecomposeGroupingSetsRule`, which omits filter arg of aggregate call when doing some processing.

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)