This is an automated email from the ASF dual-hosted git repository.

wenchen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git


The following commit(s) were added to refs/heads/master by this push:
     new 88f69d6f928 [SPARK-43779][SQL] ParseToDate should load the EvalMode in 
main thread
88f69d6f928 is described below

commit 88f69d6f92860823b1a90bc162ebca2b7c8132fc
Author: Rui Wang <rui.w...@databricks.com>
AuthorDate: Mon May 29 16:57:16 2023 +0800

    [SPARK-43779][SQL] ParseToDate should load the EvalMode in main thread
    
    ### What changes were proposed in this pull request?
    
    ParseToDate should load the EvalMode in main thread instead of loading it 
in a lazy val.
    
    ### Why are the changes needed?
    
    This is because it is sometimes hard to estimate when the lazy val is 
executed while the SQLConf where we load the EvalMode is thread local.
    
    ### Does this PR introduce _any_ user-facing change?
    
    No
    
    ### How was this patch tested?
    
    Existing UT
    
    Closes #41298 from amaliujia/SPARK-43779.
    
    Authored-by: Rui Wang <rui.w...@databricks.com>
    Signed-off-by: Wenchen Fan <wenc...@databricks.com>
---
 .../catalyst/expressions/datetimeExpressions.scala |  9 +++++---
 .../sql-tests/analyzer-results/ansi/date.sql.out   |  8 +++----
 .../ansi/datetime-parsing-invalid.sql.out          |  4 ++--
 .../sql-tests/analyzer-results/date.sql.out        |  8 +++----
 .../analyzer-results/datetime-legacy.sql.out       |  8 +++----
 .../datetime-parsing-invalid.sql.out               |  4 ++--
 .../analyzer-results/group-by-filter.sql.out       |  8 +++----
 .../analyzer-results/postgreSQL/text.sql.out       |  4 ++--
 .../analyzer-results/predicate-functions.sql.out   | 26 +++++++++++-----------
 .../analyzer-results/timestamp-ltz.sql.out         |  2 +-
 .../analyzer-results/timestamp-ntz.sql.out         |  2 +-
 11 files changed, 43 insertions(+), 40 deletions(-)

diff --git 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/datetimeExpressions.scala
 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/datetimeExpressions.scala
index 57c70f4d9bd..51ddf2b85f8 100644
--- 
a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/datetimeExpressions.scala
+++ 
b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/datetimeExpressions.scala
@@ -2044,12 +2044,15 @@ case class MonthsBetween(
 case class ParseToDate(
     left: Expression,
     format: Option[Expression],
-    timeZoneId: Option[String] = None)
+    timeZoneId: Option[String] = None,
+    ansiEnabled: Boolean = SQLConf.get.ansiEnabled)
   extends RuntimeReplaceable with ImplicitCastInputTypes with 
TimeZoneAwareExpression {
 
   override lazy val replacement: Expression = format.map { f =>
-    Cast(GetTimestamp(left, f, TimestampType, timeZoneId), DateType, 
timeZoneId)
-  }.getOrElse(Cast(left, DateType, timeZoneId)) // backwards compatibility
+    Cast(GetTimestamp(left, f, TimestampType, timeZoneId, ansiEnabled), 
DateType, timeZoneId,
+      EvalMode.fromBoolean(ansiEnabled))
+  }.getOrElse(Cast(left, DateType, timeZoneId,
+    EvalMode.fromBoolean(ansiEnabled))) // backwards compatibility
 
   def this(left: Expression, format: Expression) = {
     this(left, Option(format))
diff --git 
a/sql/core/src/test/resources/sql-tests/analyzer-results/ansi/date.sql.out 
b/sql/core/src/test/resources/sql-tests/analyzer-results/ansi/date.sql.out
index 28fe86d930f..3765d65ec3b 100644
--- a/sql/core/src/test/resources/sql-tests/analyzer-results/ansi/date.sql.out
+++ b/sql/core/src/test/resources/sql-tests/analyzer-results/ansi/date.sql.out
@@ -148,21 +148,21 @@ select UNIX_DATE(DATE('1970-01-01')), 
UNIX_DATE(DATE('2020-12-04')), UNIX_DATE(n
 -- !query
 select to_date(null), to_date('2016-12-31'), to_date('2016-12-31', 
'yyyy-MM-dd')
 -- !query analysis
-Project [to_date(cast(null as string), None, Some(America/Los_Angeles)) AS 
to_date(NULL)#x, to_date(2016-12-31, None, Some(America/Los_Angeles)) AS 
to_date(2016-12-31)#x, to_date(2016-12-31, Some(yyyy-MM-dd), 
Some(America/Los_Angeles)) AS to_date(2016-12-31, yyyy-MM-dd)#x]
+Project [to_date(cast(null as string), None, Some(America/Los_Angeles), true) 
AS to_date(NULL)#x, to_date(2016-12-31, None, Some(America/Los_Angeles), true) 
AS to_date(2016-12-31)#x, to_date(2016-12-31, Some(yyyy-MM-dd), 
Some(America/Los_Angeles), true) AS to_date(2016-12-31, yyyy-MM-dd)#x]
 +- OneRowRelation
 
 
 -- !query
 select to_date("16", "dd")
 -- !query analysis
-Project [to_date(16, Some(dd), Some(America/Los_Angeles)) AS to_date(16, dd)#x]
+Project [to_date(16, Some(dd), Some(America/Los_Angeles), true) AS to_date(16, 
dd)#x]
 +- OneRowRelation
 
 
 -- !query
 select to_date("02-29", "MM-dd")
 -- !query analysis
-Project [to_date(02-29, Some(MM-dd), Some(America/Los_Angeles)) AS 
to_date(02-29, MM-dd)#x]
+Project [to_date(02-29, Some(MM-dd), Some(America/Los_Angeles), true) AS 
to_date(02-29, MM-dd)#x]
 +- OneRowRelation
 
 
@@ -729,7 +729,7 @@ select date '2012-01-01' - interval '2-2' year to month,
 -- !query
 select to_date('26/October/2015', 'dd/MMMMM/yyyy')
 -- !query analysis
-Project [to_date(26/October/2015, Some(dd/MMMMM/yyyy), 
Some(America/Los_Angeles)) AS to_date(26/October/2015, dd/MMMMM/yyyy)#x]
+Project [to_date(26/October/2015, Some(dd/MMMMM/yyyy), 
Some(America/Los_Angeles), true) AS to_date(26/October/2015, dd/MMMMM/yyyy)#x]
 +- OneRowRelation
 
 
diff --git 
a/sql/core/src/test/resources/sql-tests/analyzer-results/ansi/datetime-parsing-invalid.sql.out
 
b/sql/core/src/test/resources/sql-tests/analyzer-results/ansi/datetime-parsing-invalid.sql.out
index 0c7f2cb193d..f7016ac3656 100644
--- 
a/sql/core/src/test/resources/sql-tests/analyzer-results/ansi/datetime-parsing-invalid.sql.out
+++ 
b/sql/core/src/test/resources/sql-tests/analyzer-results/ansi/datetime-parsing-invalid.sql.out
@@ -128,14 +128,14 @@ Project [from_csv(StructField(date,DateType,true), 
(dateFormat,yyyy-DDD), 2018-3
 -- !query
 select to_date("2020-01-27T20:06:11.847", "yyyy-MM-dd HH:mm:ss.SSS")
 -- !query analysis
-Project [to_date(2020-01-27T20:06:11.847, Some(yyyy-MM-dd HH:mm:ss.SSS), 
Some(America/Los_Angeles)) AS to_date(2020-01-27T20:06:11.847, yyyy-MM-dd 
HH:mm:ss.SSS)#x]
+Project [to_date(2020-01-27T20:06:11.847, Some(yyyy-MM-dd HH:mm:ss.SSS), 
Some(America/Los_Angeles), true) AS to_date(2020-01-27T20:06:11.847, yyyy-MM-dd 
HH:mm:ss.SSS)#x]
 +- OneRowRelation
 
 
 -- !query
 select to_date("Unparseable", "yyyy-MM-dd HH:mm:ss.SSS")
 -- !query analysis
-Project [to_date(Unparseable, Some(yyyy-MM-dd HH:mm:ss.SSS), 
Some(America/Los_Angeles)) AS to_date(Unparseable, yyyy-MM-dd HH:mm:ss.SSS)#x]
+Project [to_date(Unparseable, Some(yyyy-MM-dd HH:mm:ss.SSS), 
Some(America/Los_Angeles), true) AS to_date(Unparseable, yyyy-MM-dd 
HH:mm:ss.SSS)#x]
 +- OneRowRelation
 
 
diff --git 
a/sql/core/src/test/resources/sql-tests/analyzer-results/date.sql.out 
b/sql/core/src/test/resources/sql-tests/analyzer-results/date.sql.out
index 6f01cc3be07..42ea145c90f 100644
--- a/sql/core/src/test/resources/sql-tests/analyzer-results/date.sql.out
+++ b/sql/core/src/test/resources/sql-tests/analyzer-results/date.sql.out
@@ -148,21 +148,21 @@ select UNIX_DATE(DATE('1970-01-01')), 
UNIX_DATE(DATE('2020-12-04')), UNIX_DATE(n
 -- !query
 select to_date(null), to_date('2016-12-31'), to_date('2016-12-31', 
'yyyy-MM-dd')
 -- !query analysis
-Project [to_date(cast(null as string), None, Some(America/Los_Angeles)) AS 
to_date(NULL)#x, to_date(2016-12-31, None, Some(America/Los_Angeles)) AS 
to_date(2016-12-31)#x, to_date(2016-12-31, Some(yyyy-MM-dd), 
Some(America/Los_Angeles)) AS to_date(2016-12-31, yyyy-MM-dd)#x]
+Project [to_date(cast(null as string), None, Some(America/Los_Angeles), false) 
AS to_date(NULL)#x, to_date(2016-12-31, None, Some(America/Los_Angeles), false) 
AS to_date(2016-12-31)#x, to_date(2016-12-31, Some(yyyy-MM-dd), 
Some(America/Los_Angeles), false) AS to_date(2016-12-31, yyyy-MM-dd)#x]
 +- OneRowRelation
 
 
 -- !query
 select to_date("16", "dd")
 -- !query analysis
-Project [to_date(16, Some(dd), Some(America/Los_Angeles)) AS to_date(16, dd)#x]
+Project [to_date(16, Some(dd), Some(America/Los_Angeles), false) AS 
to_date(16, dd)#x]
 +- OneRowRelation
 
 
 -- !query
 select to_date("02-29", "MM-dd")
 -- !query analysis
-Project [to_date(02-29, Some(MM-dd), Some(America/Los_Angeles)) AS 
to_date(02-29, MM-dd)#x]
+Project [to_date(02-29, Some(MM-dd), Some(America/Los_Angeles), false) AS 
to_date(02-29, MM-dd)#x]
 +- OneRowRelation
 
 
@@ -804,7 +804,7 @@ select date '2012-01-01' - interval '2-2' year to month,
 -- !query
 select to_date('26/October/2015', 'dd/MMMMM/yyyy')
 -- !query analysis
-Project [to_date(26/October/2015, Some(dd/MMMMM/yyyy), 
Some(America/Los_Angeles)) AS to_date(26/October/2015, dd/MMMMM/yyyy)#x]
+Project [to_date(26/October/2015, Some(dd/MMMMM/yyyy), 
Some(America/Los_Angeles), false) AS to_date(26/October/2015, dd/MMMMM/yyyy)#x]
 +- OneRowRelation
 
 
diff --git 
a/sql/core/src/test/resources/sql-tests/analyzer-results/datetime-legacy.sql.out
 
b/sql/core/src/test/resources/sql-tests/analyzer-results/datetime-legacy.sql.out
index ef1261197b6..524a87262b2 100644
--- 
a/sql/core/src/test/resources/sql-tests/analyzer-results/datetime-legacy.sql.out
+++ 
b/sql/core/src/test/resources/sql-tests/analyzer-results/datetime-legacy.sql.out
@@ -148,21 +148,21 @@ select UNIX_DATE(DATE('1970-01-01')), 
UNIX_DATE(DATE('2020-12-04')), UNIX_DATE(n
 -- !query
 select to_date(null), to_date('2016-12-31'), to_date('2016-12-31', 
'yyyy-MM-dd')
 -- !query analysis
-Project [to_date(cast(null as string), None, Some(America/Los_Angeles)) AS 
to_date(NULL)#x, to_date(2016-12-31, None, Some(America/Los_Angeles)) AS 
to_date(2016-12-31)#x, to_date(2016-12-31, Some(yyyy-MM-dd), 
Some(America/Los_Angeles)) AS to_date(2016-12-31, yyyy-MM-dd)#x]
+Project [to_date(cast(null as string), None, Some(America/Los_Angeles), false) 
AS to_date(NULL)#x, to_date(2016-12-31, None, Some(America/Los_Angeles), false) 
AS to_date(2016-12-31)#x, to_date(2016-12-31, Some(yyyy-MM-dd), 
Some(America/Los_Angeles), false) AS to_date(2016-12-31, yyyy-MM-dd)#x]
 +- OneRowRelation
 
 
 -- !query
 select to_date("16", "dd")
 -- !query analysis
-Project [to_date(16, Some(dd), Some(America/Los_Angeles)) AS to_date(16, dd)#x]
+Project [to_date(16, Some(dd), Some(America/Los_Angeles), false) AS 
to_date(16, dd)#x]
 +- OneRowRelation
 
 
 -- !query
 select to_date("02-29", "MM-dd")
 -- !query analysis
-Project [to_date(02-29, Some(MM-dd), Some(America/Los_Angeles)) AS 
to_date(02-29, MM-dd)#x]
+Project [to_date(02-29, Some(MM-dd), Some(America/Los_Angeles), false) AS 
to_date(02-29, MM-dd)#x]
 +- OneRowRelation
 
 
@@ -804,7 +804,7 @@ select date '2012-01-01' - interval '2-2' year to month,
 -- !query
 select to_date('26/October/2015', 'dd/MMMMM/yyyy')
 -- !query analysis
-Project [to_date(26/October/2015, Some(dd/MMMMM/yyyy), 
Some(America/Los_Angeles)) AS to_date(26/October/2015, dd/MMMMM/yyyy)#x]
+Project [to_date(26/October/2015, Some(dd/MMMMM/yyyy), 
Some(America/Los_Angeles), false) AS to_date(26/October/2015, dd/MMMMM/yyyy)#x]
 +- OneRowRelation
 
 
diff --git 
a/sql/core/src/test/resources/sql-tests/analyzer-results/datetime-parsing-invalid.sql.out
 
b/sql/core/src/test/resources/sql-tests/analyzer-results/datetime-parsing-invalid.sql.out
index 783a4b2156f..d1cba2b48b7 100644
--- 
a/sql/core/src/test/resources/sql-tests/analyzer-results/datetime-parsing-invalid.sql.out
+++ 
b/sql/core/src/test/resources/sql-tests/analyzer-results/datetime-parsing-invalid.sql.out
@@ -128,14 +128,14 @@ Project [from_csv(StructField(date,DateType,true), 
(dateFormat,yyyy-DDD), 2018-3
 -- !query
 select to_date("2020-01-27T20:06:11.847", "yyyy-MM-dd HH:mm:ss.SSS")
 -- !query analysis
-Project [to_date(2020-01-27T20:06:11.847, Some(yyyy-MM-dd HH:mm:ss.SSS), 
Some(America/Los_Angeles)) AS to_date(2020-01-27T20:06:11.847, yyyy-MM-dd 
HH:mm:ss.SSS)#x]
+Project [to_date(2020-01-27T20:06:11.847, Some(yyyy-MM-dd HH:mm:ss.SSS), 
Some(America/Los_Angeles), false) AS to_date(2020-01-27T20:06:11.847, 
yyyy-MM-dd HH:mm:ss.SSS)#x]
 +- OneRowRelation
 
 
 -- !query
 select to_date("Unparseable", "yyyy-MM-dd HH:mm:ss.SSS")
 -- !query analysis
-Project [to_date(Unparseable, Some(yyyy-MM-dd HH:mm:ss.SSS), 
Some(America/Los_Angeles)) AS to_date(Unparseable, yyyy-MM-dd HH:mm:ss.SSS)#x]
+Project [to_date(Unparseable, Some(yyyy-MM-dd HH:mm:ss.SSS), 
Some(America/Los_Angeles), false) AS to_date(Unparseable, yyyy-MM-dd 
HH:mm:ss.SSS)#x]
 +- OneRowRelation
 
 
diff --git 
a/sql/core/src/test/resources/sql-tests/analyzer-results/group-by-filter.sql.out
 
b/sql/core/src/test/resources/sql-tests/analyzer-results/group-by-filter.sql.out
index bfb11e1e88e..7b221d8036d 100644
--- 
a/sql/core/src/test/resources/sql-tests/analyzer-results/group-by-filter.sql.out
+++ 
b/sql/core/src/test/resources/sql-tests/analyzer-results/group-by-filter.sql.out
@@ -102,7 +102,7 @@ SELECT COUNT(id) FILTER (WHERE hiredate = date 
"2001-01-01") FROM emp
 -- !query
 SELECT COUNT(id) FILTER (WHERE hiredate = to_date('2001-01-01 00:00:00')) FROM 
emp
 -- !query analysis
-Aggregate [count(id#x) FILTER (WHERE (hiredate#x = to_date(2001-01-01 
00:00:00, None, Some(America/Los_Angeles)))) AS count(id) FILTER (WHERE 
(hiredate = to_date(2001-01-01 00:00:00)))#xL]
+Aggregate [count(id#x) FILTER (WHERE (hiredate#x = to_date(2001-01-01 
00:00:00, None, Some(America/Los_Angeles), false))) AS count(id) FILTER (WHERE 
(hiredate = to_date(2001-01-01 00:00:00)))#xL]
 +- SubqueryAlias emp
    +- View (`EMP`, [id#x,emp_name#x,hiredate#x,salary#x,dept_id#x])
       +- Project [cast(id#x as int) AS id#x, cast(emp_name#x as string) AS 
emp_name#x, cast(hiredate#x as date) AS hiredate#x, cast(salary#x as double) AS 
salary#x, cast(dept_id#x as int) AS dept_id#x]
@@ -162,7 +162,7 @@ Aggregate [count(distinct id#x) AS count(DISTINCT id)#xL, 
count(distinct id#x) F
 -- !query
 SELECT COUNT(DISTINCT id) FILTER (WHERE hiredate = to_timestamp("2001-01-01 
00:00:00")), COUNT(DISTINCT id) FILTER (WHERE hiredate = to_date('2001-01-01 
00:00:00')) FROM emp
 -- !query analysis
-Aggregate [count(distinct id#x) FILTER (WHERE (cast(hiredate#x as timestamp) = 
to_timestamp(2001-01-01 00:00:00, None, TimestampType, 
Some(America/Los_Angeles), false))) AS count(DISTINCT id) FILTER (WHERE 
(hiredate = to_timestamp(2001-01-01 00:00:00)))#xL, count(distinct id#x) FILTER 
(WHERE (hiredate#x = to_date(2001-01-01 00:00:00, None, 
Some(America/Los_Angeles)))) AS count(DISTINCT id) FILTER (WHERE (hiredate = 
to_date(2001-01-01 00:00:00)))#xL]
+Aggregate [count(distinct id#x) FILTER (WHERE (cast(hiredate#x as timestamp) = 
to_timestamp(2001-01-01 00:00:00, None, TimestampType, 
Some(America/Los_Angeles), false))) AS count(DISTINCT id) FILTER (WHERE 
(hiredate = to_timestamp(2001-01-01 00:00:00)))#xL, count(distinct id#x) FILTER 
(WHERE (hiredate#x = to_date(2001-01-01 00:00:00, None, 
Some(America/Los_Angeles), false))) AS count(DISTINCT id) FILTER (WHERE 
(hiredate = to_date(2001-01-01 00:00:00)))#xL]
 +- SubqueryAlias emp
    +- View (`EMP`, [id#x,emp_name#x,hiredate#x,salary#x,dept_id#x])
       +- Project [cast(id#x as int) AS id#x, cast(emp_name#x as string) AS 
emp_name#x, cast(hiredate#x as date) AS hiredate#x, cast(salary#x as double) AS 
salary#x, cast(dept_id#x as int) AS dept_id#x]
@@ -356,7 +356,7 @@ SELECT dept_id, SUM(salary) FILTER (WHERE hiredate > date 
"2003-01-01") FROM emp
 -- !query
 SELECT dept_id, SUM(salary) FILTER (WHERE hiredate > to_date("2003-01-01")) 
FROM emp GROUP BY dept_id
 -- !query analysis
-Aggregate [dept_id#x], [dept_id#x, sum(salary#x) FILTER (WHERE (hiredate#x > 
to_date(2003-01-01, None, Some(America/Los_Angeles)))) AS sum(salary) FILTER 
(WHERE (hiredate > to_date(2003-01-01)))#x]
+Aggregate [dept_id#x], [dept_id#x, sum(salary#x) FILTER (WHERE (hiredate#x > 
to_date(2003-01-01, None, Some(America/Los_Angeles), false))) AS sum(salary) 
FILTER (WHERE (hiredate > to_date(2003-01-01)))#x]
 +- SubqueryAlias emp
    +- View (`EMP`, [id#x,emp_name#x,hiredate#x,salary#x,dept_id#x])
       +- Project [cast(id#x as int) AS id#x, cast(emp_name#x as string) AS 
emp_name#x, cast(hiredate#x as date) AS hiredate#x, cast(salary#x as double) AS 
salary#x, cast(dept_id#x as int) AS dept_id#x]
@@ -464,7 +464,7 @@ SELECT 'foo', SUM(salary) FILTER (WHERE hiredate >= date 
"2003-01-01") FROM emp
 -- !query
 SELECT 'foo', SUM(salary) FILTER (WHERE hiredate >= to_date("2003-01-01")) 
FROM emp GROUP BY 1
 -- !query analysis
-Aggregate [foo], [foo AS foo#x, sum(salary#x) FILTER (WHERE (hiredate#x >= 
to_date(2003-01-01, None, Some(America/Los_Angeles)))) AS sum(salary) FILTER 
(WHERE (hiredate >= to_date(2003-01-01)))#x]
+Aggregate [foo], [foo AS foo#x, sum(salary#x) FILTER (WHERE (hiredate#x >= 
to_date(2003-01-01, None, Some(America/Los_Angeles), false))) AS sum(salary) 
FILTER (WHERE (hiredate >= to_date(2003-01-01)))#x]
 +- SubqueryAlias emp
    +- View (`EMP`, [id#x,emp_name#x,hiredate#x,salary#x,dept_id#x])
       +- Project [cast(id#x as int) AS id#x, cast(emp_name#x as string) AS 
emp_name#x, cast(hiredate#x as date) AS hiredate#x, cast(salary#x as double) AS 
salary#x, cast(dept_id#x as int) AS dept_id#x]
diff --git 
a/sql/core/src/test/resources/sql-tests/analyzer-results/postgreSQL/text.sql.out
 
b/sql/core/src/test/resources/sql-tests/analyzer-results/postgreSQL/text.sql.out
index 16031e1d0ed..6e0345c2955 100644
--- 
a/sql/core/src/test/resources/sql-tests/analyzer-results/postgreSQL/text.sql.out
+++ 
b/sql/core/src/test/resources/sql-tests/analyzer-results/postgreSQL/text.sql.out
@@ -84,7 +84,7 @@ Project [concat(one) AS concat(one)#x]
 -- !query
 select concat(1,2,3,'hello',true, false, to_date('20100309','yyyyMMdd'))
 -- !query analysis
-Project [concat(cast(1 as string), cast(2 as string), cast(3 as string), 
hello, cast(true as string), cast(false as string), cast(to_date(20100309, 
Some(yyyyMMdd), Some(America/Los_Angeles)) as string)) AS concat(1, 2, 3, 
hello, true, false, to_date(20100309, yyyyMMdd))#x]
+Project [concat(cast(1 as string), cast(2 as string), cast(3 as string), 
hello, cast(true as string), cast(false as string), cast(to_date(20100309, 
Some(yyyyMMdd), Some(America/Los_Angeles), true) as string)) AS concat(1, 2, 3, 
hello, true, false, to_date(20100309, yyyyMMdd))#x]
 +- OneRowRelation
 
 
@@ -98,7 +98,7 @@ Project [concat_ws(#, one) AS concat_ws(#, one)#x]
 -- !query
 select concat_ws('#',1,2,3,'hello',true, false, to_date('20100309','yyyyMMdd'))
 -- !query analysis
-Project [concat_ws(#, cast(1 as string), cast(2 as string), cast(3 as string), 
hello, cast(true as string), cast(false as string), cast(to_date(20100309, 
Some(yyyyMMdd), Some(America/Los_Angeles)) as string)) AS concat_ws(#, 1, 2, 3, 
hello, true, false, to_date(20100309, yyyyMMdd))#x]
+Project [concat_ws(#, cast(1 as string), cast(2 as string), cast(3 as string), 
hello, cast(true as string), cast(false as string), cast(to_date(20100309, 
Some(yyyyMMdd), Some(America/Los_Angeles), true) as string)) AS concat_ws(#, 1, 
2, 3, hello, true, false, to_date(20100309, yyyyMMdd))#x]
 +- OneRowRelation
 
 
diff --git 
a/sql/core/src/test/resources/sql-tests/analyzer-results/predicate-functions.sql.out
 
b/sql/core/src/test/resources/sql-tests/analyzer-results/predicate-functions.sql.out
index 604d680a405..a04ee20fa79 100644
--- 
a/sql/core/src/test/resources/sql-tests/analyzer-results/predicate-functions.sql.out
+++ 
b/sql/core/src/test/resources/sql-tests/analyzer-results/predicate-functions.sql.out
@@ -65,14 +65,14 @@ Project [(cast(1.5 as double) > cast(0.5 as double)) AS 
(1.5 > 0.5)#x]
 -- !query
 select to_date('2009-07-30 04:17:52') > to_date('2009-07-30 04:17:52')
 -- !query analysis
-Project [(to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles)) > 
to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles))) AS 
(to_date(2009-07-30 04:17:52) > to_date(2009-07-30 04:17:52))#x]
+Project [(to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles), false) 
> to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles), false)) AS 
(to_date(2009-07-30 04:17:52) > to_date(2009-07-30 04:17:52))#x]
 +- OneRowRelation
 
 
 -- !query
 select to_date('2009-07-30 04:17:52') > '2009-07-30 04:17:52'
 -- !query analysis
-Project [(to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles)) > 
cast(2009-07-30 04:17:52 as date)) AS (to_date(2009-07-30 04:17:52) > 
2009-07-30 04:17:52)#x]
+Project [(to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles), false) 
> cast(2009-07-30 04:17:52 as date)) AS (to_date(2009-07-30 04:17:52) > 
2009-07-30 04:17:52)#x]
 +- OneRowRelation
 
 
@@ -114,14 +114,14 @@ Project [(cast(1.5 as double) >= cast(0.5 as double)) AS 
(1.5 >= 0.5)#x]
 -- !query
 select to_date('2009-07-30 04:17:52') >= to_date('2009-07-30 04:17:52')
 -- !query analysis
-Project [(to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles)) >= 
to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles))) AS 
(to_date(2009-07-30 04:17:52) >= to_date(2009-07-30 04:17:52))#x]
+Project [(to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles), false) 
>= to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles), false)) AS 
(to_date(2009-07-30 04:17:52) >= to_date(2009-07-30 04:17:52))#x]
 +- OneRowRelation
 
 
 -- !query
 select to_date('2009-07-30 04:17:52') >= '2009-07-30 04:17:52'
 -- !query analysis
-Project [(to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles)) >= 
cast(2009-07-30 04:17:52 as date)) AS (to_date(2009-07-30 04:17:52) >= 
2009-07-30 04:17:52)#x]
+Project [(to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles), false) 
>= cast(2009-07-30 04:17:52 as date)) AS (to_date(2009-07-30 04:17:52) >= 
2009-07-30 04:17:52)#x]
 +- OneRowRelation
 
 
@@ -163,14 +163,14 @@ Project [(cast(0.5 as double) < cast(1.5 as double)) AS 
(0.5 < 1.5)#x]
 -- !query
 select to_date('2009-07-30 04:17:52') < to_date('2009-07-30 04:17:52')
 -- !query analysis
-Project [(to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles)) < 
to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles))) AS 
(to_date(2009-07-30 04:17:52) < to_date(2009-07-30 04:17:52))#x]
+Project [(to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles), false) 
< to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles), false)) AS 
(to_date(2009-07-30 04:17:52) < to_date(2009-07-30 04:17:52))#x]
 +- OneRowRelation
 
 
 -- !query
 select to_date('2009-07-30 04:17:52') < '2009-07-30 04:17:52'
 -- !query analysis
-Project [(to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles)) < 
cast(2009-07-30 04:17:52 as date)) AS (to_date(2009-07-30 04:17:52) < 
2009-07-30 04:17:52)#x]
+Project [(to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles), false) 
< cast(2009-07-30 04:17:52 as date)) AS (to_date(2009-07-30 04:17:52) < 
2009-07-30 04:17:52)#x]
 +- OneRowRelation
 
 
@@ -212,49 +212,49 @@ Project [(cast(0.5 as double) <= cast(1.5 as double)) AS 
(0.5 <= 1.5)#x]
 -- !query
 select to_date('2009-07-30 04:17:52') <= to_date('2009-07-30 04:17:52')
 -- !query analysis
-Project [(to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles)) <= 
to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles))) AS 
(to_date(2009-07-30 04:17:52) <= to_date(2009-07-30 04:17:52))#x]
+Project [(to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles), false) 
<= to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles), false)) AS 
(to_date(2009-07-30 04:17:52) <= to_date(2009-07-30 04:17:52))#x]
 +- OneRowRelation
 
 
 -- !query
 select to_date('2009-07-30 04:17:52') <= '2009-07-30 04:17:52'
 -- !query analysis
-Project [(to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles)) <= 
cast(2009-07-30 04:17:52 as date)) AS (to_date(2009-07-30 04:17:52) <= 
2009-07-30 04:17:52)#x]
+Project [(to_date(2009-07-30 04:17:52, None, Some(America/Los_Angeles), false) 
<= cast(2009-07-30 04:17:52 as date)) AS (to_date(2009-07-30 04:17:52) <= 
2009-07-30 04:17:52)#x]
 +- OneRowRelation
 
 
 -- !query
 select to_date('2017-03-01') = to_timestamp('2017-03-01 00:00:00')
 -- !query analysis
-Project [(cast(to_date(2017-03-01, None, Some(America/Los_Angeles)) as 
timestamp) = to_timestamp(2017-03-01 00:00:00, None, TimestampType, 
Some(America/Los_Angeles), false)) AS (to_date(2017-03-01) = 
to_timestamp(2017-03-01 00:00:00))#x]
+Project [(cast(to_date(2017-03-01, None, Some(America/Los_Angeles), false) as 
timestamp) = to_timestamp(2017-03-01 00:00:00, None, TimestampType, 
Some(America/Los_Angeles), false)) AS (to_date(2017-03-01) = 
to_timestamp(2017-03-01 00:00:00))#x]
 +- OneRowRelation
 
 
 -- !query
 select to_timestamp('2017-03-01 00:00:01') > to_date('2017-03-01')
 -- !query analysis
-Project [(to_timestamp(2017-03-01 00:00:01, None, TimestampType, 
Some(America/Los_Angeles), false) > cast(to_date(2017-03-01, None, 
Some(America/Los_Angeles)) as timestamp)) AS (to_timestamp(2017-03-01 00:00:01) 
> to_date(2017-03-01))#x]
+Project [(to_timestamp(2017-03-01 00:00:01, None, TimestampType, 
Some(America/Los_Angeles), false) > cast(to_date(2017-03-01, None, 
Some(America/Los_Angeles), false) as timestamp)) AS (to_timestamp(2017-03-01 
00:00:01) > to_date(2017-03-01))#x]
 +- OneRowRelation
 
 
 -- !query
 select to_timestamp('2017-03-01 00:00:01') >= to_date('2017-03-01')
 -- !query analysis
-Project [(to_timestamp(2017-03-01 00:00:01, None, TimestampType, 
Some(America/Los_Angeles), false) >= cast(to_date(2017-03-01, None, 
Some(America/Los_Angeles)) as timestamp)) AS (to_timestamp(2017-03-01 00:00:01) 
>= to_date(2017-03-01))#x]
+Project [(to_timestamp(2017-03-01 00:00:01, None, TimestampType, 
Some(America/Los_Angeles), false) >= cast(to_date(2017-03-01, None, 
Some(America/Los_Angeles), false) as timestamp)) AS (to_timestamp(2017-03-01 
00:00:01) >= to_date(2017-03-01))#x]
 +- OneRowRelation
 
 
 -- !query
 select to_date('2017-03-01') < to_timestamp('2017-03-01 00:00:01')
 -- !query analysis
-Project [(cast(to_date(2017-03-01, None, Some(America/Los_Angeles)) as 
timestamp) < to_timestamp(2017-03-01 00:00:01, None, TimestampType, 
Some(America/Los_Angeles), false)) AS (to_date(2017-03-01) < 
to_timestamp(2017-03-01 00:00:01))#x]
+Project [(cast(to_date(2017-03-01, None, Some(America/Los_Angeles), false) as 
timestamp) < to_timestamp(2017-03-01 00:00:01, None, TimestampType, 
Some(America/Los_Angeles), false)) AS (to_date(2017-03-01) < 
to_timestamp(2017-03-01 00:00:01))#x]
 +- OneRowRelation
 
 
 -- !query
 select to_date('2017-03-01') <= to_timestamp('2017-03-01 00:00:01')
 -- !query analysis
-Project [(cast(to_date(2017-03-01, None, Some(America/Los_Angeles)) as 
timestamp) <= to_timestamp(2017-03-01 00:00:01, None, TimestampType, 
Some(America/Los_Angeles), false)) AS (to_date(2017-03-01) <= 
to_timestamp(2017-03-01 00:00:01))#x]
+Project [(cast(to_date(2017-03-01, None, Some(America/Los_Angeles), false) as 
timestamp) <= to_timestamp(2017-03-01 00:00:01, None, TimestampType, 
Some(America/Los_Angeles), false)) AS (to_date(2017-03-01) <= 
to_timestamp(2017-03-01 00:00:01))#x]
 +- OneRowRelation
 
 
diff --git 
a/sql/core/src/test/resources/sql-tests/analyzer-results/timestamp-ltz.sql.out 
b/sql/core/src/test/resources/sql-tests/analyzer-results/timestamp-ltz.sql.out
index a965fac8648..c371876fde6 100644
--- 
a/sql/core/src/test/resources/sql-tests/analyzer-results/timestamp-ltz.sql.out
+++ 
b/sql/core/src/test/resources/sql-tests/analyzer-results/timestamp-ltz.sql.out
@@ -15,7 +15,7 @@ Project [to_timestamp_ltz(cast(null as string), None, 
TimestampType, Some(Americ
 -- !query
 select to_timestamp_ltz(to_date(null)), to_timestamp_ltz(to_date('2016-12-31'))
 -- !query analysis
-Project [to_timestamp_ltz(to_date(cast(null as string), None, 
Some(America/Los_Angeles)), None, TimestampType, Some(America/Los_Angeles), 
false) AS to_timestamp_ltz(to_date(NULL))#x, 
to_timestamp_ltz(to_date(2016-12-31, None, Some(America/Los_Angeles)), None, 
TimestampType, Some(America/Los_Angeles), false) AS 
to_timestamp_ltz(to_date(2016-12-31))#x]
+Project [to_timestamp_ltz(to_date(cast(null as string), None, 
Some(America/Los_Angeles), false), None, TimestampType, 
Some(America/Los_Angeles), false) AS to_timestamp_ltz(to_date(NULL))#x, 
to_timestamp_ltz(to_date(2016-12-31, None, Some(America/Los_Angeles), false), 
None, TimestampType, Some(America/Los_Angeles), false) AS 
to_timestamp_ltz(to_date(2016-12-31))#x]
 +- OneRowRelation
 
 
diff --git 
a/sql/core/src/test/resources/sql-tests/analyzer-results/timestamp-ntz.sql.out 
b/sql/core/src/test/resources/sql-tests/analyzer-results/timestamp-ntz.sql.out
index bb5e4de56e0..c285169c572 100644
--- 
a/sql/core/src/test/resources/sql-tests/analyzer-results/timestamp-ntz.sql.out
+++ 
b/sql/core/src/test/resources/sql-tests/analyzer-results/timestamp-ntz.sql.out
@@ -16,7 +16,7 @@ Project [to_timestamp_ntz(cast(null as string), None, 
TimestampNTZType, Some(Ame
 -- !query
 select to_timestamp_ntz(to_date(null)), to_timestamp_ntz(to_date('2016-12-31'))
 -- !query analysis
-Project [to_timestamp_ntz(to_date(cast(null as string), None, 
Some(America/Los_Angeles)), None, TimestampNTZType, Some(America/Los_Angeles), 
false) AS to_timestamp_ntz(to_date(NULL))#x, 
to_timestamp_ntz(to_date(2016-12-31, None, Some(America/Los_Angeles)), None, 
TimestampNTZType, Some(America/Los_Angeles), false) AS 
to_timestamp_ntz(to_date(2016-12-31))#x]
+Project [to_timestamp_ntz(to_date(cast(null as string), None, 
Some(America/Los_Angeles), false), None, TimestampNTZType, 
Some(America/Los_Angeles), false) AS to_timestamp_ntz(to_date(NULL))#x, 
to_timestamp_ntz(to_date(2016-12-31, None, Some(America/Los_Angeles), false), 
None, TimestampNTZType, Some(America/Los_Angeles), false) AS 
to_timestamp_ntz(to_date(2016-12-31))#x]
 +- OneRowRelation
 
 


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

Reply via email to