override def inputTypes: Seq[AbstractDataType] = Seq()

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
  }