yashmayya commented on code in PR #14264:
URL: https://github.com/apache/pinot/pull/14264#discussion_r1816156864


##########
pinot-query-planner/src/main/java/org/apache/pinot/calcite/sql/fun/PinotOperatorTable.java:
##########
@@ -152,7 +149,17 @@ public static PinotOperatorTable instance() {
       SqlStdOperatorTable.RANK,
       SqlStdOperatorTable.ROW_NUMBER,
 
+      // WINDOW Functions (non-aggregate)
+      SqlStdOperatorTable.LAST_VALUE,
+      SqlStdOperatorTable.FIRST_VALUE,
+      // TODO: Replace these with SqlStdOperatorTable.LEAD and 
SqlStdOperatorTable.LAG when the function implementations

Review Comment:
   > Does this mean IGNORE NULLS are simply ignored?
   
   Nope, using `IGNORE NULLS` with `LAG` / `LEAD` will lead to a clear error 
like this during query planning - `From line 1, column 43 to line 1, column 60: 
Cannot specify IGNORE NULLS or RESPECT NULLS following 'LAG'`. This is because 
the custom operators we defined return `false` for `allowsNullTreatment` which 
means this Calcite validation will fail - 
https://github.com/apache/calcite/blob/ef1a83f659e8771c65c2541b92d2ef9cc2a05bea/core/src/main/java/org/apache/calcite/sql/SqlNullTreatmentOperator.java#L69-L74.
   
   I'd initially gone with simply throwing a runtime exception in Pinot's 
`LagValueWindowFunction` / `LeadValueWindowFunction` runtime operators, but the 
alternative chosen here suggested by @gortiz (defining our own custom 
`SqlAggFunction`s) is much better because we fail fast during query planning 
instead of query execution and the error is also clear.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


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

Reply via email to