[ 
https://issues.apache.org/jira/browse/CALCITE-5863?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17746764#comment-17746764
 ] 

Julian Hyde commented on CALCITE-5863:
--------------------------------------

I agree that this should be valid. The problem is not with the {{RANGE}} as 
such, but the fact that there is no "difference type" for a composite key.

By the same reasoning, we should also allow {{RANGE}} on singleton keys that 
have no difference type, for example VARCHAR. If {{s}} has type {{VARCHAR}}, I 
believe that the following is currently treated as invalid, but should be valid:

{code}
SELECT sum(x) OVER (ORDER BY s
    RANGE BETWEEN UNBOUNDED PRECEDING and CURRENT ROW)
FROM t;
{code}

> Calcite rejects valid query with multiple ORDER BY columns and constant RANGE 
> bounds in window functions
> --------------------------------------------------------------------------------------------------------
>
>                 Key: CALCITE-5863
>                 URL: https://issues.apache.org/jira/browse/CALCITE-5863
>             Project: Calcite
>          Issue Type: Bug
>    Affects Versions: 1.34.0
>            Reporter: Itiel Sadeh
>            Priority: Major
>              Labels: pull-request-available
>
> Usually, it is not valid to specify multiple ORDER BY columns with RANGE 
> bounds in window functions:
> {code:java}
> SELECT sum(x) OVER (ORDER BY x,y RANGE BETWEEN 3 preceding and 4 following) 
> from t;{code}
> However, it is valid if both bounds are "constant" bound (CURRENT ROW, 
> UNBOUNDED PRECEDING and UNBOUNDED FOLLOWING), i.e:
> {code:java}
> SELECT sum(x) OVER (ORDER BY x,y RANGE BETWEEN UNBOUNDED PRECEDING and 
> CURRENT ROW) from t;{code}
> (tested on PostgreSQL and SQL Server)
> Calcite will incorrectly reject it. 



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

Reply via email to