1
0

[MINOR] Fix call command parser use spark3.2 (#5144)

This commit is contained in:
ForwardXu
2022-03-28 11:13:44 +08:00
committed by GitHub
parent f2a93ead3b
commit d31cde284c

View File

@@ -18,6 +18,7 @@
package org.apache.spark.sql.hudi.procedure
import com.google.common.collect.ImmutableList
import org.apache.hudi.HoodieSparkUtils
import org.apache.spark.sql.catalyst.expressions.Literal
import org.apache.spark.sql.catalyst.plans.logical.{CallCommand, NamedArgument, PositionalArgument}
import org.apache.spark.sql.hudi.TestHoodieSqlBase
@@ -40,7 +41,13 @@ class TestCallCommandParser extends TestHoodieSqlBase {
checkArg(call, 2, 3L, DataTypes.LongType)
checkArg(call, 3, true, DataTypes.BooleanType)
checkArg(call, 4, 1.0D, DataTypes.DoubleType)
checkArg(call, 5, new BigDecimal("9.0e1"), DataTypes.createDecimalType(2, 0))
if (HoodieSparkUtils.isSpark2) {
checkArg(call, 5, 9.0e1, DataTypes.createDecimalType(2, 0))
} else {
checkArg(call, 5, 9.0e1, DataTypes.DoubleType)
}
checkArg(call, 6, new BigDecimal("900e-1"), DataTypes.createDecimalType(3, 1))
}
@@ -108,7 +115,7 @@ class TestCallCommandParser extends TestHoodieSqlBase {
assertResult(expectedExpr.dataType)(actualExpr.dataType)
}
private def toSparkLiteral(value: Any, dataType: DataType) = Literal.apply(value, dataType)
private def toSparkLiteral(value: Any, dataType: DataType) = Literal.create(value, dataType)
private def checkCast[T](value: Any, expectedClass: Class[T]) = {
assertResult(true)(expectedClass.isInstance(value))