[
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)