diff --git a/omnioperator/omniop-spark-extension/java/src/main/scala/com/huawei/boostkit/spark/expression/OmniExpressionAdaptor.scala b/omnioperator/omniop-spark-extension/java/src/main/scala/com/huawei/boostkit/spark/expression/OmniExpressionAdaptor.scala index da577ab7184aa0cc3eb14be88c36ca6f50a7002b..1788852baa489c4de30287d5d21a4df107fe85f9 100644 --- a/omnioperator/omniop-spark-extension/java/src/main/scala/com/huawei/boostkit/spark/expression/OmniExpressionAdaptor.scala +++ b/omnioperator/omniop-spark-extension/java/src/main/scala/com/huawei/boostkit/spark/expression/OmniExpressionAdaptor.scala @@ -301,10 +301,10 @@ object OmniExpressionAdaptor extends Logging { } private def unsupportedCastCheck(expr: Expression, cast: Cast): Unit = { - def isDecimalOrStringType(dataType: DataType): Boolean = (dataType.isInstanceOf[DecimalType]) || (dataType.isInstanceOf[StringType]) + def isDecimalOrStringType(dataType: DataType): Boolean = dataType == DecimalType || dataType == StringType // not support Cast(string as !(decimal/string)) and Cast(!(decimal/string) as string) - if ((cast.dataType.isInstanceOf[StringType] && !isDecimalOrStringType(cast.child.dataType)) || - (!isDecimalOrStringType(cast.dataType) && cast.child.dataType.isInstanceOf[StringType])) { + if ((cast.dataType == StringType && !isDecimalOrStringType(cast.child.dataType)) || + (!isDecimalOrStringType(cast.dataType) && cast.child.dataType == StringType)) { throw new UnsupportedOperationException(s"Unsupported expression: $expr") } }