mihailom-db commented on code in PR #48893:
URL: https://github.com/apache/spark/pull/48893#discussion_r1851047679
##########
sql/core/src/test/resources/sql-tests/results/window.sql.out:
##########
@@ -1442,3 +1442,69 @@ a 1 2
a NULL 1
b 1 1
b 2 2
+
+
+-- !query
+SELECT *, mean(val_double) over (partition BY val ORDER BY val_date RANGE
INTERVAL '5' DAY PRECEDING) AS mean FROM testData
+-- !query schema
+struct<val:int,val_long:bigint,val_double:double,val_date:date,val_timestamp:timestamp,cate:string,mean:double>
+-- !query output
+1 1 1.0 2017-08-01 2017-07-31 17:00:00 a 1.0
+1 2 2.5 2017-08-02 2017-08-05 23:13:20 a 1.5
+1 NULL 1.0 2017-08-01 2017-07-31 17:00:00 b 1.0
+2 2147483650 100.001 2020-12-31 2020-12-30 16:00:00 a
100.001
+2 3 3.3 2017-08-03 2017-08-17 13:00:00 b 3.3
+3 1 1.0 2017-08-01 2017-07-31 17:00:00 NULL 1.0
+3 2147483650 100.001 2020-12-31 2020-12-30 16:00:00 b
100.001
+NULL 1 1.0 2017-08-01 2017-07-31 17:00:00 a 1.0
+NULL NULL NULL NULL NULL NULL NULL
+
+
+-- !query
+SELECT *, mean(val_double) over (partition BY val ORDER BY val_date RANGE
INTERVAL '1 2:3:4.001' DAY TO SECOND PRECEDING) AS mean FROM testData
+-- !query schema
+struct<>
+-- !query output
+org.apache.spark.sql.catalyst.ExtendedAnalysisException
+{
+ "errorClass" : "DATATYPE_MISMATCH.RANGE_FRAME_INVALID_TYPE",
+ "sqlState" : "42K09",
+ "messageParameters" : {
+ "orderSpecType" : "\"DATE\"",
+ "sqlExpr" : "\"(PARTITION BY val ORDER BY val_date ASC NULLS FIRST RANGE
BETWEEN INTERVAL '1 02:03:04.001' DAY TO SECOND PRECEDING AND CURRENT ROW)\"",
+ "valueBoundaryType" : "\"INTERVAL DAY TO SECOND\""
+ },
+ "queryContext" : [ {
+ "objectType" : "",
+ "objectName" : "",
+ "startIndex" : 33,
+ "stopIndex" : 121,
+ "fragment" : "(partition BY val ORDER BY val_date RANGE INTERVAL '1
2:3:4.001' DAY TO SECOND PRECEDING)"
+ } ]
+}
+
+
+-- !query
+SELECT *, mean(val_double) over (partition BY val ORDER BY val_date RANGE DATE
'2024-01-01' PRECEDING) AS mean FROM testData
+-- !query schema
+struct<>
+-- !query output
+org.apache.spark.sql.catalyst.ExtendedAnalysisException
+{
+ "errorClass" : "DATATYPE_MISMATCH.UNEXPECTED_INPUT_TYPE",
+ "sqlState" : "42K09",
+ "messageParameters" : {
+ "inputSql" : "\"DATE '2024-01-01'\"",
+ "inputType" : "\"DATE\"",
+ "paramIndex" : "first",
+ "requiredType" : "(\"NUMERIC\" or \"INTERVAL DAY TO SECOND\" or \"INTERVAL
YEAR TO MONTH\" or \"INTERVAL\")",
Review Comment:
In this case this is failing because we cannot do UnaryMinus(DATE), I
changed the error to reflect problems with DATE+DATE. The problem with printing
is that it is not an easy change. The requiredType is acquired from input types
we have in the expression, and DayTimeIntervalType uses INTERVAL DAY TO SECOND.
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]