julianhyde commented on a change in pull request #1556: [CALCITE-3438]
Validator should disallow use of the GROUPING function inside a FILTER clause
URL: https://github.com/apache/calcite/pull/1556#discussion_r347640850
##########
File path: core/src/main/java/org/apache/calcite/sql/validate/AggVisitor.java
##########
@@ -44,6 +44,9 @@
* or group auxiliary functions (e.g. {@code TUMBLE_START}). */
protected final boolean group;
protected final SqlNameMatcher nameMatcher;
+ /** Whether to find grouping functions (i.e., {@code GROUP_ID},
+ * {@code GROUPING_ID}, {@code GROUPING}).*/
+ private boolean grouping = false;
Review comment:
I agree, we want ```sql("select ^group_id()^ from emp")``` to continue to
give an error. Whereas the existence of an aggregate function, say
```sql("select count(*) from emp")``` would cause the query to be regarded as
an aggregate query. So, yes, we will need a boolean field to make `AggFinder`
treat aggregate functions (e.g. `COUNT`) and grouping functions
(e.g.`GROUP_ID`) differently when called from `SqlValidatorImpl.isAggregate`.
Are there any other cases where we need to treat them differently? Hopefully
not.
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services