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

ASF GitHub Bot updated CALCITE-7620:
------------------------------------
    Labels: pull-request-available  (was: )

> Result of FILTER clause in window functions is incorrect
> --------------------------------------------------------
>
>                 Key: CALCITE-7620
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7620
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.42.0
>            Reporter: Yu Xu
>            Assignee: Yu Xu
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.43.0
>
>
> This is a follow-up jira of https://issues.apache.org/jira/browse/CALCITE-7595
> As discussion, the result is not right. According to my investigation, the 
> main reason is:
>  # *The FILTER clause was not actually applied.* Although the syntax was 
> supported, the filter argument was not propagated through {{RexOver}} → 
> {{Window.RexWinAggCall}} → {{{}AggregateCall{}}}. Specifically, 
> {{Window.Group.getAggregateCalls}} hard-coded {{{}filterArg = -1{}}}, so 
> {{EnumerableWindow.implementAdd}} always received a {{null}} filter and 
> aggregated all rows regardless of the {{FILTER (WHERE ...)}} condition.
>  # *The result ordering was wrong because the top-level {{ORDER BY}} Sort was 
> incorrectly removed.* The window operator's collation metadata advertised 
> only the window {{ORDER BY}} keys, ignoring the {{PARTITION BY}} grouping. 
> This made the planner believe the window output was already globally sorted 
> by {{{}empno{}}}, so it eliminated the required top-level sort, while 
> {{EnumerableWindow}} actually emits rows grouped by partition key.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to