MaxGekk commented on code in PR #45622:
URL: https://github.com/apache/spark/pull/45622#discussion_r1535193927


##########
sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/AnalysisErrorSuite.scala:
##########
@@ -295,10 +295,50 @@ class AnalysisErrorSuite extends AnalysisTest with 
DataTypeErrorsBase {
         "aggregate(array(1, 2, 3), 0, (acc, x) -> acc + x) FILTER (WHERE c > 
1)", 7, 76)))
   }
 
-  errorTest(
-    "non-deterministic filter predicate in aggregate functions",
-    CatalystSqlParser.parsePlan("SELECT count(a) FILTER (WHERE rand(int(c)) > 
1) FROM TaBlE2"),
-    "FILTER expression is non-deterministic, it cannot be used in aggregate 
functions" :: Nil)
+  test("SPARK-47256: non deterministic FILTER expression in an aggregate 
function") {
+    val plan =
+      CatalystSqlParser.parsePlan("SELECT count(a) FILTER (WHERE rand(int(c)) 
> 1) FROM TaBlE2")

Review Comment:
   > However, triggering public API in this test suite seems like too much 
setup work ...
   
   Could you move the test queries to `group-by-filter.sql`, and regenerate the 
golden file.



##########
common/utils/src/main/resources/error/error-classes.json:
##########
@@ -1746,6 +1746,34 @@
     ],
     "sqlState" : "22012"
   },
+  "INVALID_AGGREGATE_FILTER" : {
+    "message" : [
+      "The FILTER expression <filterExpr> in an aggregate function is invalid."
+    ],
+    "subClass" : {
+      "CONTAINS_AGGREGATE" : {
+        "message" : [
+          "Expected a FILTER expression without aggregation, but found 
<aggExpr>."
+        ]
+      },
+      "CONTAINS_WINDOW_FUNCTION" : {
+        "message" : [
+          "Expected a FILTER expression without window function, but found 
<windowExpr>."
+        ]
+      },
+      "NON_DETERMINISTIC" : {
+        "message" : [
+          "Expected non-deterministic FILTER expression."
+        ]
+      },
+      "NOT_BOOLEAN" : {
+        "message" : [
+          "Expected FILTER expression of boolean type."

Review Comment:
   Let's follow the convention of `toSQLType`, and output the type in the upper 
case:
   ```suggestion
             "Expected a FILTER expression of the BOOLEAN type."
   ```



-- 
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]

Reply via email to