[
https://issues.apache.org/jira/browse/CALCITE-1984?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16165265#comment-16165265
]
Jesus Camacho Rodriguez commented on CALCITE-1984:
--------------------------------------------------
Yes, I agree, but the rewriting is indeed incorrect.
*MV:*
{code}
select deptno, empid, salary
from emps
group by deptno, empid, salary;
{code}
*Query:*
{code}
select t1.deptno, count(distinct t1.empid)
from (
select deptno, empid
from emps
group by deptno, empid) as t1
group by t1.deptno;
{code}
*Produced rewrite (currently):*
{code}
select deptno, count(empid)
from mv
group by deptno;
{code}
*Correct rewrite:*
{code}
select deptno, count(distinct empid)
from mv
group by deptno;
{code}
> MaterialView rewrite failed
> ---------------------------
>
> Key: CALCITE-1984
> URL: https://issues.apache.org/jira/browse/CALCITE-1984
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.13.0
> Reporter: fei.chen
> Assignee: Jesus Camacho Rodriguez
> Fix For: 1.15.0
>
>
> I had written a test as follows . It runs to succeed . But , the result seems
> not right . The “count distinct” aggregation should not be changed to “count”.
> {code:java}
> @Test public void testAggregateMaterializationOnCountDistinctQuery1() {
> checkMaterialize(
> "select \"deptno\", \"empid\" ,\"salary\"\n"
> + "from \"emps\" group by \"deptno\", \"empid\",\"salary\"",
> "select \"deptno\", count( distinct \"empid\")" + "from (select
> \"deptno\", \"empid\" \n"
> + "from \"emps\" group by \"deptno\", \"empid\") group by
> \"deptno\"",
> HR_FKUK_MODEL,
> CalciteAssert.checkResultContains(
> "EnumerableAggregate(group=[{0}], S=[COUNT($1)])\n" +
> " EnumerableTableScan(table=[[hr, m0]]"));
> }
> {code}
>
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)