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] + } + } + } } 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) } }