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

Gengliang Wang commented on SPARK-28068:
----------------------------------------

Is this ANSI SQL? From the specification 4.16 Data analysis operations 
(involving tables):
> The lead and lag functions each take three arguments, a <value expression> 
> VE, an <exact numeric literal> OFFSET, and a <value expression> DEFAULT. 

> `lag` second argument must be a literal
> ---------------------------------------
>
>                 Key: SPARK-28068
>                 URL: https://issues.apache.org/jira/browse/SPARK-28068
>             Project: Spark
>          Issue Type: Sub-task
>          Components: SQL
>    Affects Versions: 3.0.0
>            Reporter: Dylan Guedes
>            Priority: Major
>
> Currently in Spark, `lag` (and, possible, some other window functions) 
> requires the 2nd argument to be a literal.
> For example, this is not allowed:
> {code:sql}
> SELECT lag(ten, four) OVER (PARTITION BY four ORDER BY ten), ten, four FROM 
> tenk1 WHERE unique2 < 10;
> {code}
> However, this one works:
> {code:sql}
> SELECT lag(ten, 2) OVER (PARTITION BY four ORDER BY ten), ten, four FROM 
> tenk1 WHERE unique2 < 10;
> {code}
> In comparison, Postgres accepts a literal as a 2nd argument. I found this 
> issue while porting `window.sql` tests from Postgres to Spark



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to