in src/main/scala/org/apache/spark/sql/datasketches/kll/expressions/KllDoublesSketchExpressions.scala [252:270]
override def inputTypes: Seq[AbstractDataType] = Seq(KllDoublesSketchType, ArrayType(DoubleType), BooleanType)
override def dataType: DataType = ArrayType(DoubleType, containsNull = false)
// letting underlying library validate input types, not defining checkInputDataTypes() here
override def checkInputDataTypes(): TypeCheckResult = {
// splitPints and isInclusive must be a constant
if (!splitPointsExpr.foldable) {
return TypeCheckResult.TypeCheckFailure(s"splitPointsExpr must be foldable, but got: ${splitPointsExpr}")
}
if (!isInclusiveExpr.foldable) {
return TypeCheckResult.TypeCheckFailure(s"isInclusiveExpr must be foldable, but got: ${isInclusiveExpr}")
}
if (splitPointsExpr.eval().asInstanceOf[GenericArrayData].numElements() == 0) {
return TypeCheckResult.TypeCheckFailure(s"splitPointsExpr must not be empty")
}
TypeCheckResult.TypeCheckSuccess
}