From f11761641885b219baa8d924ded8b8a9345de6f0 Mon Sep 17 00:00:00 2001 From: zml1206 Date: Fri, 4 Apr 2025 10:49:35 +0800 Subject: [PATCH 1/2] Add test for date_trunc function --- .../ScalarFunctionsValidateSuite.scala | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/backends-velox/src/test/scala/org/apache/gluten/execution/ScalarFunctionsValidateSuite.scala b/backends-velox/src/test/scala/org/apache/gluten/execution/ScalarFunctionsValidateSuite.scala index 58c18400b6bf..7dcba10eed0a 100644 --- a/backends-velox/src/test/scala/org/apache/gluten/execution/ScalarFunctionsValidateSuite.scala +++ b/backends-velox/src/test/scala/org/apache/gluten/execution/ScalarFunctionsValidateSuite.scala @@ -1727,4 +1727,32 @@ abstract class ScalarFunctionsValidateSuite extends FunctionsValidateSuite { } } } + + test("date_trunc") { + withTable("t") { + sql("create table t (c0 TIMESTAMP) using parquet") + sql("insert into t values(Timestamp('2015-07-22 10:01:40.123456'))") + runQueryAndCompare(""" + |SELECT + | date_trunc('yy',c0) as t1, + | date_trunc('yyyy', c0) as t2, + | date_trunc('year', c0) as t3, + | date_trunc('quarter', c0) as t4, + | date_trunc('mon', c0) as t5, + | date_trunc('month', c0) as t6, + | date_trunc('mm', c0) as t7, + | date_trunc('week', c0) as t8, + | date_trunc('dd', c0) as t9, + | date_trunc('day', c0) as t10, + | date_trunc('hour', c0) as t11, + | date_trunc('minute', c0) as t12, + | date_trunc('second', c0) as t13, + | date_trunc('millisecond', c0) as t14, + | date_trunc('microsecond', c0) as t15 + |FROM t + |""".stripMargin) { + checkGlutenOperatorMatch[ProjectExecTransformer] + } + } + } } From bb957cfaefa40e97cbaeed3e64ff9174c7932df7 Mon Sep 17 00:00:00 2001 From: zml1206 Date: Fri, 4 Apr 2025 11:52:51 +0800 Subject: [PATCH 2/2] Support date_trunc function --- .../gluten/expression/DateTimeExpressionsTransformer.scala | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gluten-substrait/src/main/scala/org/apache/gluten/expression/DateTimeExpressionsTransformer.scala b/gluten-substrait/src/main/scala/org/apache/gluten/expression/DateTimeExpressionsTransformer.scala index 505ca33ea74f..39dec5d3fdc9 100644 --- a/gluten-substrait/src/main/scala/org/apache/gluten/expression/DateTimeExpressionsTransformer.scala +++ b/gluten-substrait/src/main/scala/org/apache/gluten/expression/DateTimeExpressionsTransformer.scala @@ -44,8 +44,7 @@ case class TruncTimestampTransformer( original: TruncTimestamp) extends ExpressionTransformer { override def children: Seq[ExpressionTransformer] = { - val timeZoneId = original.timeZoneId.map(timeZoneId => LiteralTransformer(timeZoneId)) - Seq(format, timestamp) ++ timeZoneId + Seq(format, timestamp) } }