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)