yaooqinn commented on a change in pull request #26412: [SPARK-29774][SQL] Date 
and Timestamp type +/- null should be null as Postgres
URL: https://github.com/apache/spark/pull/26412#discussion_r353287869
 
 

 ##########
 File path: 
sql/core/src/test/resources/sql-tests/results/typeCoercion/native/decimalPrecision.sql.out
 ##########
 @@ -1041,37 +1033,33 @@ cannot resolve '(CAST('2017-12-11 09:30:00.0' AS 
TIMESTAMP) - CAST(1 AS DECIMAL(
 -- !query 125
 SELECT cast('2017-12-11 09:30:00' as date) - cast(1 as decimal(3, 0)) FROM t
 -- !query 125 schema
-struct<>
+struct<date_sub(CAST(2017-12-11 09:30:00 AS DATE), CAST(CAST(1 AS 
DECIMAL(3,0)) AS INT)):date>
 -- !query 125 output
-org.apache.spark.sql.AnalysisException
-cannot resolve '(CAST('2017-12-11 09:30:00' AS DATE) - CAST(1 AS 
DECIMAL(3,0)))' due to data type mismatch: differing types in 
'(CAST('2017-12-11 09:30:00' AS DATE) - CAST(1 AS DECIMAL(3,0)))' (date and 
decimal(3,0)).; line 1 pos 7
+2017-12-10
 
 
 -- !query 126
 SELECT cast('2017-12-11 09:30:00' as date) - cast(1 as decimal(5, 0)) FROM t
 -- !query 126 schema
-struct<>
+struct<date_sub(CAST(2017-12-11 09:30:00 AS DATE), CAST(CAST(1 AS 
DECIMAL(5,0)) AS INT)):date>
 -- !query 126 output
-org.apache.spark.sql.AnalysisException
-cannot resolve '(CAST('2017-12-11 09:30:00' AS DATE) - CAST(1 AS 
DECIMAL(5,0)))' due to data type mismatch: differing types in 
'(CAST('2017-12-11 09:30:00' AS DATE) - CAST(1 AS DECIMAL(5,0)))' (date and 
decimal(5,0)).; line 1 pos 7
+2017-12-10
 
 
 -- !query 127
 SELECT cast('2017-12-11 09:30:00' as date) - cast(1 as decimal(10, 0)) FROM t
 -- !query 127 schema
-struct<>
+struct<date_sub(CAST(2017-12-11 09:30:00 AS DATE), CAST(CAST(1 AS 
DECIMAL(10,0)) AS INT)):date>
 -- !query 127 output
-org.apache.spark.sql.AnalysisException
-cannot resolve '(CAST('2017-12-11 09:30:00' AS DATE) - CAST(1 AS 
DECIMAL(10,0)))' due to data type mismatch: differing types in 
'(CAST('2017-12-11 09:30:00' AS DATE) - CAST(1 AS DECIMAL(10,0)))' (date and 
decimal(10,0)).; line 1 pos 7
+2017-12-10
 
 
 -- !query 128
 SELECT cast('2017-12-11 09:30:00' as date) - cast(1 as decimal(20, 0)) FROM t
 
 Review comment:
   One way is to prohibit implicit cast for DateAdd and DateSub, which make 
them more conformable with pgsql and hive. the other way is to take care of the 
types in our resolving process, but this will cause date add/sub functions 
different from `+/-`.
   
   I took a quick look at Hive's Jira for these functions, they are from MySQL, 
the MySQL original ones only take interval as the second arguments

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to