[ 
https://issues.apache.org/jira/browse/CALCITE-4733?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Hyde reopened CALCITE-4733:
----------------------------------

> MaterializedViewAggregateRule should not rewrite top level name alias in 
> project.
> ---------------------------------------------------------------------------------
>
>                 Key: CALCITE-4733
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4733
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.27.0
>            Reporter: Enze Liu
>            Priority: Minor
>         Attachments: image-2021-08-13-14-06-36-712.png
>
>
> We use *MaterializedViewAggregateRule* to do optimize. 
> the original sql is : 
> {code:java}
> SELECT (intDiv(ts/1000, 60) * 60) * 1000 as t, source_idc, dest_idc, 
> sum(jitter200)/sum(total) as `jitter200_rate` FROM metricsdb.test_table WHERE 
> ts/1000 >= 1627874961 AND source_idc in ('xxx') AND dest_idc IN ('xxx') GROUP 
> BY t,source_idc,dest_idc ORDER BY t
> {code}
> after optimize, the sql is : 
> {code:java}
> SELECT `intDiv`(`ts` / 1000, 60) * 60 * 1000 AS `$f14`, `source_idc`, 
> `dest_idc`, SUM(`jitter200`) / SUM(`total`) AS `$f3` FROM 
> `metricsdb`.`s2s_idc2idc_jitter_mv_all` WHERE `ts` / 1000 >= 1627874961 AND 
> `source_idc` IN ('xxx') AND `dest_idc` IN ('xxx') GROUP BY `source_idc`, 
> `dest_idc`, `intDiv`(`ts` / 1000, 60) * 60 * 1000 ORDER BY `intDiv`(`ts` / 
> 1000, 60) * 60 * 1000
> {code}
> we expected it to be : 
> {code:java}
> `intDiv`(`ts` / 1000, 60) * 60 * 1000 AS `t`{code}
> , not
> {code:java}
> `intDiv`(`ts` / 1000, 60) * 60 * 1000 AS `$f14`{code}
>  
> After examine the code , we found in  *rewriteView* of 
> *MaterializedViewAggregateRule*
> {code:java}
>     return relBuilder
>         .project(rewrittenExprs)
>         .convert(topRowType, false) // this means do not compare the names.
>         .build();
> {code}
> when change it to true, everything goes as expected.
>  
> I think the rewrite rule should maintain then same type and name , not just 
> type.  
>  
> If it's true, we can come up with some modification and tests.



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

Reply via email to