MaxGekk commented on a change in pull request #33258:
URL: https://github.com/apache/spark/pull/33258#discussion_r667741239
##########
File path:
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/datetimeExpressions.scala
##########
@@ -200,6 +200,30 @@ case class Now() extends CurrentTimestampLike {
override def prettyName: String = "now"
}
+/**
+ * Returns the current timestamp without time zone at the start of query
evaluation.
+ * There is no code generation since this expression should get constant
folded by the optimizer.
+ */
+// scalastyle:off line.size.limit
+@ExpressionDescription(
+ usage = """
+ _FUNC_() - Returns the current timestamp without time zone at the start of
query evaluation. All calls of localtimestamp within the same query return the
same value.
+
+ _FUNC_ - Returns the current local date-time at the session time zone at
the start of query evaluation.
+ """,
+ examples = """
+ Examples:
+ > SELECT _FUNC_();
+ 2020-04-25 15:49:11.914
+ """,
+ group = "datetime_funcs",
+ since = "3.3.0")
+case class LocalTimestamp() extends CurrentTimestampLike {
+ override def dataType: DataType = TimestampNTZType
+ override def eval(input: InternalRow): Any = currentTimestampNTZ()
Review comment:
If `currentTimestampNTZ()` is used only here, let's inline it.
##########
File path:
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/DateTimeUtils.scala
##########
@@ -969,9 +970,10 @@ object DateTimeUtils {
def currentTimestamp(): Long = instantToMicros(Instant.now())
/**
- * Obtains the current local date-time as microseconds since the epoch in
the default time-zone.
+ * Obtains the current local date-time as microseconds since the epoch at
the session time-zone.
*/
- def currentTimestampNTZ(): Long = localDateTimeToMicros(LocalDateTime.now())
+ def currentTimestampNTZ(): Long = localDateTimeToMicros(
+ LocalDateTime.now(getZoneId(SQLConf.get.sessionLocalTimeZone)))
Review comment:
Please, extend `LocalTimestamp` by `TimeZoneAwareExpression`, and take
the time zone id from there.
--
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.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]