Github user mn-mikke commented on a diff in the pull request:

    https://github.com/apache/spark/pull/22075#discussion_r209643649
  
    --- Diff: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/higherOrderFunctions.scala
 ---
    @@ -422,45 +425,49 @@ case class ArrayExists(
       """,
       since = "2.4.0")
     case class ArrayAggregate(
    -    input: Expression,
    +    argument: Expression,
         zero: Expression,
         merge: Expression,
         finish: Expression)
       extends HigherOrderFunction with CodegenFallback {
     
    -  def this(input: Expression, zero: Expression, merge: Expression) = {
    -    this(input, zero, merge, LambdaFunction.identity)
    +  def this(argument: Expression, zero: Expression, merge: Expression) = {
    +    this(argument, zero, merge, LambdaFunction.identity)
       }
     
    -  override def inputs: Seq[Expression] = input :: zero :: Nil
    +  override def arguments: Seq[Expression] = argument :: zero :: Nil
    +
    +  override def argumentTypes: Seq[AbstractDataType] = ArrayType :: 
AnyDataType :: Nil
     
       override def functions: Seq[Expression] = merge :: finish :: Nil
     
    -  override def nullable: Boolean = input.nullable || finish.nullable
    +  override def functionTypes: Seq[AbstractDataType] = zero.dataType :: 
AnyDataType :: Nil
    +
    +  override def nullable: Boolean = argument.nullable || finish.nullable
     
       override def dataType: DataType = finish.dataType
     
       override def checkInputDataTypes(): TypeCheckResult = {
    -    if (!ArrayType.acceptsType(input.dataType)) {
    -      TypeCheckResult.TypeCheckFailure(
    -        s"argument 1 requires ${ArrayType.simpleString} type, " +
    -          s"however, '${input.sql}' is of ${input.dataType.catalogString} 
type.")
    -    } else if (!DataType.equalsStructurally(
    -        zero.dataType, merge.dataType, ignoreNullability = true)) {
    -      TypeCheckResult.TypeCheckFailure(
    -        s"argument 3 requires ${zero.dataType.simpleString} type, " +
    -          s"however, '${merge.sql}' is of ${merge.dataType.catalogString} 
type.")
    -    } else {
    -      TypeCheckResult.TypeCheckSuccess
    +    checkArgumentDataTypes() match {
    --- End diff --
    
    just a quick question: Isn't calling of ```checkArgumentDataTypes``` extra 
here if ```checkArgumentDataTypes``` is called  as such before 
```checkInputDataTypes```?


---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to