MaxGekk commented on code in PR #38208:
URL: https://github.com/apache/spark/pull/38208#discussion_r992670133
##########
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/arithmetic.scala:
##########
@@ -1198,12 +1200,17 @@ case class Least(children: Seq[Expression]) extends
ComplexTypeMergingExpression
override def checkInputDataTypes(): TypeCheckResult = {
if (children.length <= 1) {
- TypeCheckResult.TypeCheckFailure(
- s"input to function $prettyName requires at least two arguments")
+ DataTypeMismatch(
+ errorSubClass = "WRONG_NUM_PARAMS",
+ messageParameters = Map("actualNum" -> children.length.toString))
} else if (!TypeCoercion.haveSameType(inputTypesForMerging)) {
- TypeCheckResult.TypeCheckFailure(
- s"The expressions should all have the same type," +
- s" got LEAST(${children.map(_.dataType.catalogString).mkString(",
")}).")
+ DataTypeMismatch(
+ errorSubClass = "DATA_DIFF_TYPES",
+ messageParameters = Map(
+ "functionName" -> s"function $prettyName",
Review Comment:
```suggestion
"functionName" -> toSQLId(prettyName),
```
##########
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/arithmetic.scala:
##########
@@ -1281,12 +1288,17 @@ case class Greatest(children: Seq[Expression]) extends
ComplexTypeMergingExpress
override def checkInputDataTypes(): TypeCheckResult = {
if (children.length <= 1) {
- TypeCheckResult.TypeCheckFailure(
- s"input to function $prettyName requires at least two arguments")
+ DataTypeMismatch(
+ errorSubClass = "WRONG_NUM_PARAMS",
+ messageParameters = Map("actualNum" -> children.length.toString))
} else if (!TypeCoercion.haveSameType(inputTypesForMerging)) {
- TypeCheckResult.TypeCheckFailure(
- s"The expressions should all have the same type," +
- s" got GREATEST(${children.map(_.dataType.catalogString).mkString(",
")}).")
+ DataTypeMismatch(
+ errorSubClass = "DATA_DIFF_TYPES",
+ messageParameters = Map(
+ "functionName" -> s"function $prettyName",
Review Comment:
```suggestion
"functionName" -> toSQLId(prettyName),
```
##########
sql/core/src/test/scala/org/apache/spark/sql/DataFrameFunctionsSuite.scala:
##########
@@ -4236,7 +4236,7 @@ class DataFrameFunctionsSuite extends QueryTest with
SharedSparkSession {
("least", (df: DataFrame) => df.selectExpr("least()")) :: Nil
funcsMustHaveAtLeastTwoArgs.foreach { case (name, func) =>
val errMsg = intercept[AnalysisException] { func(df) }.getMessage
- assert(errMsg.contains(s"input to function $name requires at least two
arguments"))
+ assert(errMsg.contains("wrong number of parameters"))
Review Comment:
Could you use `checkError()` to avoid dependency of the error message.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]