object Cast extends QueryErrorsBase with Serializable
- Alphabetic
- By Inheritance
- Cast
- Serializable
- Serializable
- QueryErrorsBase
- DataTypeErrorsBase
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
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( ... ) @native()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): 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[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
getQueryContext(sqlContext: SQLQueryContext): Array[QueryContext]
- Definition Classes
- DataTypeErrorsBase
-
def
getSummary(sqlContext: SQLQueryContext): String
- Definition Classes
- DataTypeErrorsBase
-
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
quoteByDefault(elem: String): String
- Attributes
- protected
- Definition Classes
- DataTypeErrorsBase
- 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
- DataTypeErrorsBase
-
def
toSQLConfVal(conf: String): String
- Definition Classes
- QueryErrorsBase
-
def
toSQLExpr(e: Expression): String
- Definition Classes
- QueryErrorsBase
-
def
toSQLId(parts: Seq[String]): String
- Definition Classes
- DataTypeErrorsBase
-
def
toSQLId(parts: String): String
- Definition Classes
- DataTypeErrorsBase
-
def
toSQLSchema(schema: String): String
- Definition Classes
- QueryErrorsBase
-
def
toSQLStmt(text: String): String
- Definition Classes
- DataTypeErrorsBase
-
def
toSQLType(t: AbstractDataType): String
- Definition Classes
- DataTypeErrorsBase
-
def
toSQLType(text: String): String
- Definition Classes
- DataTypeErrorsBase
-
def
toSQLValue(v: Any, t: DataType): String
- Definition Classes
- QueryErrorsBase
-
def
toSQLValue(value: Double): String
- Definition Classes
- DataTypeErrorsBase
-
def
toSQLValue(value: Float): String
- Definition Classes
- DataTypeErrorsBase
-
def
toSQLValue(value: Long): String
- Definition Classes
- DataTypeErrorsBase
-
def
toSQLValue(value: Int): String
- Definition Classes
- DataTypeErrorsBase
-
def
toSQLValue(value: Short): String
- Definition Classes
- DataTypeErrorsBase
-
def
toSQLValue(value: UTF8String): String
- Definition Classes
- DataTypeErrorsBase
-
def
toSQLValue(value: String): String
- Definition Classes
- DataTypeErrorsBase
-
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( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()