object Cast extends QueryErrorsBase with Serializable
- Alphabetic
- By Inheritance
- Cast
- Serializable
- QueryErrorsBase
- 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
- val BY_TABLE_INSERTION: TreeNodeTag[Unit]
A tag to identify if a CAST added by the table insertion resolver.
- val USER_SPECIFIED_CAST: TreeNodeTag[Boolean]
A tag to decide if a CAST is specified by user.
- def apply(child: Expression, dataType: DataType, timeZoneId: Option[String], ansiEnabled: Boolean): Cast
- def apply(child: Expression, dataType: DataType, ansiEnabled: Boolean): Cast
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def canANSIStoreAssign(from: DataType, to: DataType): Boolean
Returns true iff we can cast the
fromtype tototype as per the ANSI SQL.Returns true iff we can cast the
fromtype tototype as per the ANSI SQL. In practice, the behavior is mostly the same as PostgreSQL. It disallows certain unreasonable type conversions such as convertingstringtointordoubletoboolean. - def canAnsiCast(from: DataType, to: DataType): Boolean
As per section 6.13 "cast specification" in "Information technology — Database languages " + "- SQL — Part 2: Foundation (SQL/Foundation)": If the <cast operand> is a <value expression>, then the valid combinations of TD and SD in a <cast specification> are given by the following table.
As per section 6.13 "cast specification" in "Information technology — Database languages " + "- SQL — Part 2: Foundation (SQL/Foundation)": If the <cast operand> is a <value expression>, then the valid combinations of TD and SD in a <cast specification> are given by the following table. "Y" indicates that the combination is syntactically valid without restriction; "M" indicates that the combination is valid subject to other Syntax Rules in this Sub- clause being satisfied; and "N" indicates that the combination is not valid: SD TD EN AN C D T TS YM DT BO UDT B RT CT RW EN Y Y Y N N N M M N M N M N N AN Y Y Y N N N N N N M N M N N C Y Y Y Y Y Y Y Y Y M N M N N D N N Y Y N Y N N N M N M N N T N N Y N Y Y N N N M N M N N TS N N Y Y Y Y N N N M N M N N YM M N Y N N N Y N N M N M N N DT M N Y N N N N Y N M N M N N BO N N Y N N N N N Y M N M N N UDT M M M M M M M M M M M M M N B N N N N N N N N N M Y M N N RT M M M M M M M M M M M M N N CT N N N N N N N N N M N N M N RW N N N N N N N N N N N N N M
Where: EN = Exact Numeric AN = Approximate Numeric C = Character (Fixed- or Variable-Length, or Character Large Object) D = Date T = Time TS = Timestamp YM = Year-Month Interval DT = Day-Time Interval BO = Boolean UDT = User-Defined Type B = Binary (Fixed- or Variable-Length or Binary Large Object) RT = Reference type CT = Collection type RW = Row type
Spark's ANSI mode follows the syntax rules, except it specially allow the following straightforward type conversions which are disallowed as per the SQL standard:
- Numeric <=> Boolean
- String <=> Binary
- def canCast(from: DataType, to: DataType): Boolean
Returns true iff we can cast
fromtype tototype. - def canNullSafeCastToDecimal(from: DataType, to: DecimalType): Boolean
- def canTryCast(from: DataType, to: DataType): Boolean
- def canUpCast(from: DataType, to: DataType): Boolean
Returns true iff we can safely up-cast the
fromtype tototype without any truncating or precision lose or possible runtime failures.Returns true iff we can safely up-cast the
fromtype tototype without any truncating or precision lose or possible runtime failures. For example, long -> int, string -> int are not up-cast. - def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def forceNullable(from: DataType, to: DataType): Boolean
Returns
trueif casting non-nullable values fromfromtype tototype may return null.Returns
trueif casting non-nullable values fromfromtype tototype may return null. Note that the caller side should take care of input nullability first and only call this method if the input is not nullable. - final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def getQueryContext(sqlContext: SQLQueryContext): Array[QueryContext]
- Definition Classes
- QueryErrorsBase
- def getSummary(sqlContext: SQLQueryContext): String
- Definition Classes
- QueryErrorsBase
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def needsTimeZone(from: DataType, to: DataType): Boolean
Return true if we need to use the
timeZoneinformation castingfromtype tototype.Return true if we need to use the
timeZoneinformation castingfromtype tototype. The patterns matched reflect the current implementation in the Cast node. c.f. usage oftimeZonein: * Cast.castToString * Cast.castToDate * Cast.castToTimestamp - final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def processFloatingPointSpecialLiterals(v: String, isFloat: Boolean): Any
We process literals such as 'Infinity', 'Inf', '-Infinity' and 'NaN' etc in case insensitive manner to be compatible with other database systems such as PostgreSQL and DB2.
- def resolvableNullability(from: Boolean, to: Boolean): Boolean
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toDSOption(option: String): String
- Definition Classes
- QueryErrorsBase
- def toSQLConf(conf: String): String
- Definition Classes
- QueryErrorsBase
- def toSQLConfVal(conf: String): String
- Definition Classes
- QueryErrorsBase
- def toSQLExpr(e: Expression): String
- Definition Classes
- QueryErrorsBase
- def toSQLId(parts: String): String
- Definition Classes
- QueryErrorsBase
- def toSQLId(parts: Seq[String]): String
- Definition Classes
- QueryErrorsBase
- def toSQLSchema(schema: String): String
- Definition Classes
- QueryErrorsBase
- def toSQLStmt(text: String): String
- Definition Classes
- QueryErrorsBase
- def toSQLType(text: String): String
- Definition Classes
- QueryErrorsBase
- def toSQLType(t: AbstractDataType): String
- Definition Classes
- QueryErrorsBase
- def toSQLValue(v: Any, t: DataType): String
- Definition Classes
- QueryErrorsBase
- def toString(): String
- Definition Classes
- AnyRef → Any
- def typeCheckFailureMessage(from: DataType, to: DataType, fallbackConf: Option[(String, String)]): DataTypeMismatch
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- 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()