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

Julian Hyde commented on CALCITE-5883:
--------------------------------------

I have changed my mind about this. Consider the query
{code:sql}
SELECT sum(x) OVER (ROWS BETWEEN 3 PRECEDING AND 2 PRECEDING)
FROM t {code}

Since there is no {{ORDER BY}} clause, it is nondeterministic. (But queries 
with an {{ORDER BY}} clause are nondeterministic also, if the key is not 
unique.) Although it is nondeterministic, we know that it evaluates over a 
window of one row (except for the first 3 rows, where the window is not yet 
full).

In summary, I think we should keep the bounds if the window is {{ROWS}}, even 
if there is no {{ORDER BY}}.

> Calcite ignores window frames when there is no ORDER BY clause
> --------------------------------------------------------------
>
>                 Key: CALCITE-5883
>                 URL: https://issues.apache.org/jira/browse/CALCITE-5883
>             Project: Calcite
>          Issue Type: Bug
>    Affects Versions: 1.35.0
>            Reporter: Itiel Sadeh
>            Priority: Major
>
> When specifying window frame without an ORDER BY clause, Calcite will ignore 
> it and will generate the frame UNBOUNDED PRECEDING to UNBOUNDED FOLLOWING. 
> e.g, calcite will translate 
> {code:java}
> SELECT sum(x) over(partition by y ROWS between CURRENT ROW and UNBOUNDED 
> FOLLOWING) from t
> {code}
> into 
> {code:java}
> SELECT sum(x) over(partition by y RANGE between UNBOUNDED FOLLOWING and 
> UNBOUNDED FOLLOWING) from t
> {code}
> There is a comment in the offending code (SqlToRelConverter.java:2207) which 
> states that 
> ??"without ORDER BY, there must be no bracketing"?? . I've tried to find a 
> specification like that in the SQL 2003 standard, but didn't find anything to 
> that effect. 



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

Reply via email to