coderfender commented on PR #3056:
URL: 
https://github.com/apache/datafusion-comet/pull/3056#issuecomment-3727392028

   ### Cast Support by Eval Mode
   
   The following tables show cast support levels for each evaluation mode 
(LEGACY, TRY, ANSI).
   
   #### LEGACY Mode
   
   <!--BEGIN:CAST_LEGACY_TABLE-->
   <!-- prettier-ignore-start -->
   | From Type | To Type | Support | Notes |
   |-|-|-|-|
   | binary | string | Compatible |  |
   | boolean | byte | Compatible |  |
   | boolean | decimal | Unsupported | Cast from BooleanType to DecimalType is 
not supported |
   | boolean | double | Compatible |  |
   | boolean | float | Compatible |  |
   | boolean | integer | Compatible |  |
   | boolean | long | Compatible |  |
   | boolean | short | Compatible |  |
   | boolean | string | Compatible |  |
   | boolean | timestamp | Unsupported | Cast from BooleanType to TimestampType 
is not supported |
   | byte | binary | Unsupported | Cast from ByteType to BinaryType is not 
supported |
   | byte | boolean | Compatible |  |
   | byte | decimal | Compatible |  |
   | byte | double | Compatible |  |
   | byte | float | Compatible |  |
   | byte | integer | Compatible |  |
   | byte | long | Compatible |  |
   | byte | short | Compatible |  |
   | byte | string | Compatible |  |
   | byte | timestamp | Unsupported | Cast from ByteType to TimestampType is 
not supported |
   | date | boolean | Unsupported | Cast from DateType to BooleanType is not 
supported |
   | date | byte | Unsupported | Cast from DateType to ByteType is not 
supported |
   | date | decimal | Unsupported | Cast from DateType to DecimalType is not 
supported |
   | date | double | Unsupported | Cast from DateType to DoubleType is not 
supported |
   | date | float | Unsupported | Cast from DateType to FloatType is not 
supported |
   | date | integer | Unsupported | Cast from DateType to IntegerType is not 
supported |
   | date | long | Unsupported | Cast from DateType to LongType is not 
supported |
   | date | short | Unsupported | Cast from DateType to ShortType is not 
supported |
   | date | string | Compatible |  |
   | date | timestamp | Unsupported | Cast from DateType to TimestampType is 
not supported |
   | decimal | boolean | Compatible |  |
   | decimal | byte | Compatible |  |
   | decimal | double | Compatible |  |
   | decimal | float | Compatible |  |
   | decimal | integer | Compatible |  |
   | decimal | long | Compatible |  |
   | decimal | short | Compatible |  |
   | decimal | string | Compatible | There can be formatting differences in 
some case due to Spark using scientific notation where Comet does not |
   | decimal | timestamp | Unsupported | Cast from DecimalType to TimestampType 
is not supported |
   | double | boolean | Compatible |  |
   | double | byte | Compatible |  |
   | double | decimal | Incompatible | There can be rounding differences |
   | double | float | Compatible |  |
   | double | integer | Compatible |  |
   | double | long | Compatible |  |
   | double | short | Compatible |  |
   | double | string | Compatible | There can be differences in precision. For 
example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45 |
   | double | timestamp | Unsupported | Cast from DoubleType to TimestampType 
is not supported |
   | float | boolean | Compatible |  |
   | float | byte | Compatible |  |
   | float | decimal | Incompatible | There can be rounding differences |
   | float | double | Compatible |  |
   | float | integer | Compatible |  |
   | float | long | Compatible |  |
   | float | short | Compatible |  |
   | float | string | Compatible | There can be differences in precision. For 
example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45 |
   | float | timestamp | Unsupported | Cast from FloatType to TimestampType is 
not supported |
   | integer | binary | Unsupported | Cast from IntegerType to BinaryType is 
not supported |
   | integer | boolean | Compatible |  |
   | integer | byte | Compatible |  |
   | integer | decimal | Compatible |  |
   | integer | double | Compatible |  |
   | integer | float | Compatible |  |
   | integer | long | Compatible |  |
   | integer | short | Compatible |  |
   | integer | string | Compatible |  |
   | integer | timestamp | Unsupported | Cast from IntegerType to TimestampType 
is not supported |
   | long | binary | Unsupported | Cast from LongType to BinaryType is not 
supported |
   | long | boolean | Compatible |  |
   | long | byte | Compatible |  |
   | long | decimal | Compatible |  |
   | long | double | Compatible |  |
   | long | float | Compatible |  |
   | long | integer | Compatible |  |
   | long | short | Compatible |  |
   | long | string | Compatible |  |
   | long | timestamp | Unsupported | Cast from LongType to TimestampType is 
not supported |
   | short | binary | Unsupported | Cast from ShortType to BinaryType is not 
supported |
   | short | boolean | Compatible |  |
   | short | byte | Compatible |  |
   | short | decimal | Compatible |  |
   | short | double | Compatible |  |
   | short | float | Compatible |  |
   | short | integer | Compatible |  |
   | short | long | Compatible |  |
   | short | string | Compatible |  |
   | short | timestamp | Unsupported | Cast from ShortType to TimestampType is 
not supported |
   | string | binary | Compatible |  |
   | string | boolean | Compatible |  |
   | string | byte | Compatible |  |
   | string | date | Compatible | Only supports years between 262143 BC and 
262142 AD |
   | string | decimal | Incompatible | Does not support fullwidth unicode 
digits (e.g \\uFF10)
   or strings containing null bytes (e.g \\u0000) |
   | string | double | Compatible |  |
   | string | float | Compatible |  |
   | string | integer | Compatible |  |
   | string | long | Compatible |  |
   | string | short | Compatible |  |
   | string | timestamp | Incompatible | Not all valid formats are supported |
   | timestamp | boolean | Unsupported | Cast from TimestampType to BooleanType 
is not supported |
   | timestamp | byte | Unsupported | Cast from TimestampType to ByteType is 
not supported |
   | timestamp | date | Compatible |  |
   | timestamp | decimal | Unsupported | Cast from TimestampType to DecimalType 
is not supported |
   | timestamp | double | Unsupported | Cast from TimestampType to DoubleType 
is not supported |
   | timestamp | float | Unsupported | Cast from TimestampType to FloatType is 
not supported |
   | timestamp | integer | Unsupported | Cast from TimestampType to IntegerType 
is not supported |
   | timestamp | long | Compatible |  |
   | timestamp | short | Unsupported | Cast from TimestampType to ShortType is 
not supported |
   | timestamp | string | Compatible |  |
   <!-- prettier-ignore-end -->
   <!--END:CAST_LEGACY_TABLE-->
   
   #### TRY Mode
   
   <!--BEGIN:CAST_TRY_TABLE-->
   <!-- prettier-ignore-start -->
   | From Type | To Type | Support | Notes |
   |-|-|-|-|
   | binary | string | Compatible |  |
   | boolean | byte | Compatible |  |
   | boolean | decimal | Unsupported | Cast from BooleanType to DecimalType is 
not supported |
   | boolean | double | Compatible |  |
   | boolean | float | Compatible |  |
   | boolean | integer | Compatible |  |
   | boolean | long | Compatible |  |
   | boolean | short | Compatible |  |
   | boolean | string | Compatible |  |
   | boolean | timestamp | Unsupported | Cast from BooleanType to TimestampType 
is not supported |
   | byte | binary | Unsupported | Cast from ByteType to BinaryType is not 
supported |
   | byte | boolean | Compatible |  |
   | byte | decimal | Compatible |  |
   | byte | double | Compatible |  |
   | byte | float | Compatible |  |
   | byte | integer | Compatible |  |
   | byte | long | Compatible |  |
   | byte | short | Compatible |  |
   | byte | string | Compatible |  |
   | byte | timestamp | Unsupported | Cast from ByteType to TimestampType is 
not supported |
   | date | boolean | Unsupported | Cast from DateType to BooleanType is not 
supported |
   | date | byte | Unsupported | Cast from DateType to ByteType is not 
supported |
   | date | decimal | Unsupported | Cast from DateType to DecimalType is not 
supported |
   | date | double | Unsupported | Cast from DateType to DoubleType is not 
supported |
   | date | float | Unsupported | Cast from DateType to FloatType is not 
supported |
   | date | integer | Unsupported | Cast from DateType to IntegerType is not 
supported |
   | date | long | Unsupported | Cast from DateType to LongType is not 
supported |
   | date | short | Unsupported | Cast from DateType to ShortType is not 
supported |
   | date | string | Compatible |  |
   | date | timestamp | Unsupported | Cast from DateType to TimestampType is 
not supported |
   | decimal | boolean | Compatible |  |
   | decimal | byte | Compatible |  |
   | decimal | double | Compatible |  |
   | decimal | float | Compatible |  |
   | decimal | integer | Compatible |  |
   | decimal | long | Compatible |  |
   | decimal | short | Compatible |  |
   | decimal | string | Compatible | There can be formatting differences in 
some case due to Spark using scientific notation where Comet does not |
   | decimal | timestamp | Unsupported | Cast from DecimalType to TimestampType 
is not supported |
   | double | boolean | Compatible |  |
   | double | byte | Compatible |  |
   | double | decimal | Incompatible | There can be rounding differences |
   | double | float | Compatible |  |
   | double | integer | Compatible |  |
   | double | long | Compatible |  |
   | double | short | Compatible |  |
   | double | string | Compatible | There can be differences in precision. For 
example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45 |
   | double | timestamp | Unsupported | Cast from DoubleType to TimestampType 
is not supported |
   | float | boolean | Compatible |  |
   | float | byte | Compatible |  |
   | float | decimal | Incompatible | There can be rounding differences |
   | float | double | Compatible |  |
   | float | integer | Compatible |  |
   | float | long | Compatible |  |
   | float | short | Compatible |  |
   | float | string | Compatible | There can be differences in precision. For 
example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45 |
   | float | timestamp | Unsupported | Cast from FloatType to TimestampType is 
not supported |
   | integer | binary | Unsupported | Cast from IntegerType to BinaryType is 
not supported |
   | integer | boolean | Compatible |  |
   | integer | byte | Compatible |  |
   | integer | decimal | Compatible |  |
   | integer | double | Compatible |  |
   | integer | float | Compatible |  |
   | integer | long | Compatible |  |
   | integer | short | Compatible |  |
   | integer | string | Compatible |  |
   | integer | timestamp | Unsupported | Cast from IntegerType to TimestampType 
is not supported |
   | long | binary | Unsupported | Cast from LongType to BinaryType is not 
supported |
   | long | boolean | Compatible |  |
   | long | byte | Compatible |  |
   | long | decimal | Compatible |  |
   | long | double | Compatible |  |
   | long | float | Compatible |  |
   | long | integer | Compatible |  |
   | long | short | Compatible |  |
   | long | string | Compatible |  |
   | long | timestamp | Unsupported | Cast from LongType to TimestampType is 
not supported |
   | short | binary | Unsupported | Cast from ShortType to BinaryType is not 
supported |
   | short | boolean | Compatible |  |
   | short | byte | Compatible |  |
   | short | decimal | Compatible |  |
   | short | double | Compatible |  |
   | short | float | Compatible |  |
   | short | integer | Compatible |  |
   | short | long | Compatible |  |
   | short | string | Compatible |  |
   | short | timestamp | Unsupported | Cast from ShortType to TimestampType is 
not supported |
   | string | binary | Compatible |  |
   | string | boolean | Compatible |  |
   | string | byte | Compatible |  |
   | string | date | Compatible | Only supports years between 262143 BC and 
262142 AD |
   | string | decimal | Incompatible | Does not support fullwidth unicode 
digits (e.g \\uFF10)
   or strings containing null bytes (e.g \\u0000) |
   | string | double | Compatible |  |
   | string | float | Compatible |  |
   | string | integer | Compatible |  |
   | string | long | Compatible |  |
   | string | short | Compatible |  |
   | string | timestamp | Incompatible | Not all valid formats are supported |
   | timestamp | boolean | Unsupported | Cast from TimestampType to BooleanType 
is not supported |
   | timestamp | byte | Unsupported | Cast from TimestampType to ByteType is 
not supported |
   | timestamp | date | Compatible |  |
   | timestamp | decimal | Unsupported | Cast from TimestampType to DecimalType 
is not supported |
   | timestamp | double | Unsupported | Cast from TimestampType to DoubleType 
is not supported |
   | timestamp | float | Unsupported | Cast from TimestampType to FloatType is 
not supported |
   | timestamp | integer | Unsupported | Cast from TimestampType to IntegerType 
is not supported |
   | timestamp | long | Compatible |  |
   | timestamp | short | Unsupported | Cast from TimestampType to ShortType is 
not supported |
   | timestamp | string | Compatible |  |
   <!-- prettier-ignore-end -->
   <!--END:CAST_TRY_TABLE-->
   
   #### ANSI Mode
   
   <!--BEGIN:CAST_ANSI_TABLE-->
   <!-- prettier-ignore-start -->
   | From Type | To Type | Support | Notes |
   |-|-|-|-|
   | binary | string | Compatible |  |
   | boolean | byte | Compatible |  |
   | boolean | decimal | Unsupported | Cast from BooleanType to DecimalType is 
not supported |
   | boolean | double | Compatible |  |
   | boolean | float | Compatible |  |
   | boolean | integer | Compatible |  |
   | boolean | long | Compatible |  |
   | boolean | short | Compatible |  |
   | boolean | string | Compatible |  |
   | boolean | timestamp | Unsupported | Cast from BooleanType to TimestampType 
is not supported |
   | byte | binary | Unsupported | Cast from ByteType to BinaryType is not 
supported |
   | byte | boolean | Compatible |  |
   | byte | decimal | Compatible |  |
   | byte | double | Compatible |  |
   | byte | float | Compatible |  |
   | byte | integer | Compatible |  |
   | byte | long | Compatible |  |
   | byte | short | Compatible |  |
   | byte | string | Compatible |  |
   | byte | timestamp | Unsupported | Cast from ByteType to TimestampType is 
not supported |
   | date | boolean | Unsupported | Cast from DateType to BooleanType is not 
supported |
   | date | byte | Unsupported | Cast from DateType to ByteType is not 
supported |
   | date | decimal | Unsupported | Cast from DateType to DecimalType is not 
supported |
   | date | double | Unsupported | Cast from DateType to DoubleType is not 
supported |
   | date | float | Unsupported | Cast from DateType to FloatType is not 
supported |
   | date | integer | Unsupported | Cast from DateType to IntegerType is not 
supported |
   | date | long | Unsupported | Cast from DateType to LongType is not 
supported |
   | date | short | Unsupported | Cast from DateType to ShortType is not 
supported |
   | date | string | Compatible |  |
   | date | timestamp | Unsupported | Cast from DateType to TimestampType is 
not supported |
   | decimal | boolean | Compatible |  |
   | decimal | byte | Compatible |  |
   | decimal | double | Compatible |  |
   | decimal | float | Compatible |  |
   | decimal | integer | Compatible |  |
   | decimal | long | Compatible |  |
   | decimal | short | Compatible |  |
   | decimal | string | Compatible | There can be formatting differences in 
some case due to Spark using scientific notation where Comet does not |
   | decimal | timestamp | Unsupported | Cast from DecimalType to TimestampType 
is not supported |
   | double | boolean | Compatible |  |
   | double | byte | Compatible |  |
   | double | decimal | Incompatible | There can be rounding differences |
   | double | float | Compatible |  |
   | double | integer | Compatible |  |
   | double | long | Compatible |  |
   | double | short | Compatible |  |
   | double | string | Compatible | There can be differences in precision. For 
example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45 |
   | double | timestamp | Unsupported | Cast from DoubleType to TimestampType 
is not supported |
   | float | boolean | Compatible |  |
   | float | byte | Compatible |  |
   | float | decimal | Incompatible | There can be rounding differences |
   | float | double | Compatible |  |
   | float | integer | Compatible |  |
   | float | long | Compatible |  |
   | float | short | Compatible |  |
   | float | string | Compatible | There can be differences in precision. For 
example, the input "1.4E-45" will produce 1.0E-45 instead of 1.4E-45 |
   | float | timestamp | Unsupported | Cast from FloatType to TimestampType is 
not supported |
   | integer | binary | Unsupported | Cast from IntegerType to BinaryType is 
not supported |
   | integer | boolean | Compatible |  |
   | integer | byte | Compatible |  |
   | integer | decimal | Compatible |  |
   | integer | double | Compatible |  |
   | integer | float | Compatible |  |
   | integer | long | Compatible |  |
   | integer | short | Compatible |  |
   | integer | string | Compatible |  |
   | integer | timestamp | Unsupported | Cast from IntegerType to TimestampType 
is not supported |
   | long | binary | Unsupported | Cast from LongType to BinaryType is not 
supported |
   | long | boolean | Compatible |  |
   | long | byte | Compatible |  |
   | long | decimal | Compatible |  |
   | long | double | Compatible |  |
   | long | float | Compatible |  |
   | long | integer | Compatible |  |
   | long | short | Compatible |  |
   | long | string | Compatible |  |
   | long | timestamp | Unsupported | Cast from LongType to TimestampType is 
not supported |
   | short | binary | Unsupported | Cast from ShortType to BinaryType is not 
supported |
   | short | boolean | Compatible |  |
   | short | byte | Compatible |  |
   | short | decimal | Compatible |  |
   | short | double | Compatible |  |
   | short | float | Compatible |  |
   | short | integer | Compatible |  |
   | short | long | Compatible |  |
   | short | string | Compatible |  |
   | short | timestamp | Unsupported | Cast from ShortType to TimestampType is 
not supported |
   | string | binary | Compatible |  |
   | string | boolean | Compatible |  |
   | string | byte | Compatible |  |
   | string | date | Compatible | Only supports years between 262143 BC and 
262142 AD |
   | string | decimal | Incompatible | Does not support fullwidth unicode 
digits (e.g \\uFF10)
   or strings containing null bytes (e.g \\u0000) |
   | string | double | Compatible |  |
   | string | float | Compatible |  |
   | string | integer | Compatible |  |
   | string | long | Compatible |  |
   | string | short | Compatible |  |
   | string | timestamp | Incompatible | ANSI mode not supported |
   | timestamp | boolean | Unsupported | Cast from TimestampType to BooleanType 
is not supported |
   | timestamp | byte | Unsupported | Cast from TimestampType to ByteType is 
not supported |
   | timestamp | date | Compatible |  |
   | timestamp | decimal | Unsupported | Cast from TimestampType to DecimalType 
is not supported |
   | timestamp | double | Unsupported | Cast from TimestampType to DoubleType 
is not supported |
   | timestamp | float | Unsupported | Cast from TimestampType to FloatType is 
not supported |
   | timestamp | integer | Unsupported | Cast from TimestampType to IntegerType 
is not supported |
   | timestamp | long | Compatible |  |
   | timestamp | short | Unsupported | Cast from TimestampType to ShortType is 
not supported |
   | timestamp | string | Compatible |  |
   <!-- prettier-ignore-end -->
   <!--END:CAST_ANSI_TABLE-->
   


-- 
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]

Reply via email to