Skip to content

Commit b297733

Browse files
committed
fix_bool_to_timestamp_support
1 parent 88e0c83 commit b297733

1 file changed

Lines changed: 10 additions & 7 deletions

File tree

spark/src/main/scala/org/apache/comet/expressions/CometCast.scala

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ object CometCast extends CometExpressionSerde[Cast] with CometExprShim {
166166
case (_: DecimalType, _) =>
167167
canCastFromDecimal(toType)
168168
case (DataTypes.BooleanType, _) =>
169-
canCastFromBoolean(toType)
169+
canCastFromBoolean(toType, evalMode)
170170
case (DataTypes.ByteType, _) =>
171171
canCastFromByte(toType, evalMode)
172172
case (DataTypes.ShortType, _) =>
@@ -283,12 +283,15 @@ object CometCast extends CometExpressionSerde[Cast] with CometExprShim {
283283
}
284284
}
285285

286-
private def canCastFromBoolean(toType: DataType): SupportLevel = toType match {
287-
case DataTypes.ByteType | DataTypes.ShortType | DataTypes.IntegerType | DataTypes.LongType |
288-
DataTypes.FloatType | DataTypes.DoubleType | _: DecimalType | _: TimestampType =>
289-
Compatible()
290-
case _ => unsupported(DataTypes.BooleanType, toType)
291-
}
286+
private def canCastFromBoolean(toType: DataType, evalMode: CometEvalMode.Value): SupportLevel =
287+
toType match {
288+
case DataTypes.ByteType | DataTypes.ShortType | DataTypes.IntegerType | DataTypes.LongType |
289+
DataTypes.FloatType | DataTypes.DoubleType | _: DecimalType =>
290+
Compatible()
291+
case _: TimestampType if evalMode == CometEvalMode.LEGACY =>
292+
Compatible()
293+
case _ => unsupported(DataTypes.BooleanType, toType)
294+
}
292295

293296
private def canCastFromByte(toType: DataType, evalMode: CometEvalMode.Value): SupportLevel =
294297
toType match {

0 commit comments

Comments
 (0)