org.apache.spark.sql.catalyst.analysis.resolver
TimezoneAwareExpressionResolver
Companion class TimezoneAwareExpressionResolver
object TimezoneAwareExpressionResolver
- Alphabetic
- By Inheritance
- TimezoneAwareExpressionResolver
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- def resolveTimezone(expression: Expression, timeZoneId: String): Expression
Applies a timezone to a TimeZoneAwareExpression while preserving original tags.
Applies a timezone to a TimeZoneAwareExpression while preserving original tags.
Method is applied recursively to all the nested TimeZoneAwareExpressions which lack a timezone until we find one which has it. This is because sometimes type coercion rules (or other code) can produce multiple Casts on top of an expression. For example:
SELECT NANVL(1, null);
Plan:
Project [nanvl(cast(1 as double), cast(cast(null as int) as double)) AS nanvl(1, NULL)#0] +- OneRowRelation
As it can be seen, there are multiple nested Cast nodes and timezone should be applied to all of them.
This method is particularly useful for cases like resolving Cast expressions where tags such as USER_SPECIFIED_CAST need to be preserved.
- expression
The TimeZoneAwareExpression to apply the timezone to.
- timeZoneId
The timezone ID to apply.
- returns
A new TimeZoneAwareExpression with the specified timezone and original tags.
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)