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]

Reply via email to