MaxGekk commented on a change in pull request #25408: [SPARK-28687][SQL]
Support `epoch`, `isoyear`, `milliseconds` and `microseconds` at `extract()`
URL: https://github.com/apache/spark/pull/25408#discussion_r312791079
##########
File path:
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/datetimeExpressions.scala
##########
@@ -1876,3 +1930,22 @@ case class Decade(child: Expression) extends
UnaryExpression with ImplicitCastIn
defineCodeGen(ctx, ev, c => s"$dtu.getDecade($c)")
}
}
+
+case class Epoch(child: Expression, timeZoneId: Option[String] = None)
+ extends UnaryExpression with ImplicitCastInputTypes with
TimeZoneAwareExpression {
+
+ override def inputTypes: Seq[AbstractDataType] = Seq(TimestampType)
+ override def dataType: DataType = DecimalType(20, 6)
Review comment:
I tried `DoubleType` but I was loosing 1 microsecond in some tests.
Regarding `precision` (20) and `scale` (6). 6 was taken to have microseconds,
20 to cover supported range `[1, 9999]` of years + additional numbers to cover
negative years that are out of the range ( but it would be nice to cover them).
----------------------------------------------------------------
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]