diff --git a/core/trino-main/src/main/java/io/trino/sql/analyzer/ExpressionAnalyzer.java b/core/trino-main/src/main/java/io/trino/sql/analyzer/ExpressionAnalyzer.java index 1c9b718d590..ef35941f324 100644 --- a/core/trino-main/src/main/java/io/trino/sql/analyzer/ExpressionAnalyzer.java +++ b/core/trino-main/src/main/java/io/trino/sql/analyzer/ExpressionAnalyzer.java @@ -1231,11 +1231,7 @@ protected Type visitFunctionCall(FunctionCall node, StackableAstVisitorContext argumentTypes = getCallArgumentTypes(node.getArguments(), context); diff --git a/core/trino-main/src/test/java/io/trino/sql/analyzer/TestAnalyzer.java b/core/trino-main/src/test/java/io/trino/sql/analyzer/TestAnalyzer.java index ea84e4f8524..c5d1900a23e 100644 --- a/core/trino-main/src/test/java/io/trino/sql/analyzer/TestAnalyzer.java +++ b/core/trino-main/src/test/java/io/trino/sql/analyzer/TestAnalyzer.java @@ -4035,6 +4035,7 @@ public void testInValidJoinOnClause() @Test public void testNullAggregationFilter() { + analyze("SELECT count(*) FILTER (WHERE NULL) FROM t1"); analyze("SELECT a, count(*) FILTER (WHERE NULL) FROM t1 GROUP BY a"); } @@ -4052,10 +4053,10 @@ public void testInvalidAggregationFilter() .hasMessage("line 1:8: Filter is only valid for aggregation functions"); assertFails("SELECT count(*) FILTER (WHERE 0) FROM t1") .hasErrorCode(TYPE_MISMATCH) - .hasMessage("line 1:31: Filter expression must evaluate to a boolean: actual type integer"); + .hasMessage("line 1:31: Filter expression must evaluate to a boolean (actual: integer)"); assertFails("SELECT a, count(*) FILTER (WHERE 0) FROM t1 GROUP BY a") .hasErrorCode(TYPE_MISMATCH) - .hasMessage("line 1:34: Filter expression must evaluate to a boolean: actual type integer"); + .hasMessage("line 1:34: Filter expression must evaluate to a boolean (actual: integer)"); } @Test