cloud-fan commented on a change in pull request #35404:
URL: https://github.com/apache/spark/pull/35404#discussion_r804393674
##########
File path: sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
##########
@@ -4281,6 +4281,44 @@ class SQLQuerySuite extends QueryTest with
SharedSparkSession with AdaptiveSpark
Row(2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22) :: Nil)
}
}
+
+ test("SPARK-38118: Func(wrong_type) in the HAVING clause should throw data
mismatch error") {
+ val meanErrorMsg = s"cannot resolve 'mean(t.c)' due to data type " +
+ "mismatch: function average requires numeric or interval types, not
boolean"
+ val absErrorMsg = s"cannot resolve 'abs(t.c)' due to data type " +
+ "mismatch: argument 1 requires (numeric or interval day to second or
interval year to " +
+ "month) type, however, 't.c' is of boolean type."
+
+ Seq("mean", "abs").foreach { func =>
+ val e1 = intercept[AnalysisException](
+ sql(
+ s"""
+ |WITH t as (SELECT true c)
+ |SELECT t.c
+ |FROM t
+ |GROUP BY t.c
+ |HAVING ${func}(t.c) > 0d""".stripMargin))
+ if (func == "mean") {
+ assert(e1.message.contains(meanErrorMsg))
Review comment:
we don't need to check the full error message
```
assert(e1.message.contains(s"cannot resolve '$func(t.c)' due to data type
mismatch"))
```
--
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]