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 57c70f4d9bd38..51ddf2b85f8c2 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 3929e02dd1b46..b31fd43997208 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 0c7f2cb193da9..f7016ac36563d 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 baa7cc3554087..a0334e17426e8 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 9eb83778af839..8d5f157689221 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 783a4b2156f4e..d1cba2b48b71a 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 bfb11e1e88e96..7b221d8036d60 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 16031e1d0ed8a..6e0345c2955da 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 604d680a40544..a04ee20fa7996 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 a965fac864849..c371876fde6a6 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 bb5e4de56e085..c285169c572e5 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