Tracy Sassaman created CALCITE-6677: ---------------------------------------
Summary: HAVING clauses fail validation when type coercion is applied to GROUP BY clause Key: CALCITE-6677 URL: https://issues.apache.org/jira/browse/CALCITE-6677 Project: Calcite Issue Type: Bug Reporter: Tracy Sassaman Given a sql statement like: select if(EMP.empno <= CAST(18 AS DOUBLE), 'youth', 'adult') as adult_or_child from EMP GROUP BY if(EMP.empno <= CAST(18 AS DOUBLE), 'youth', 'adult') HAVING if(EMP.empno <= CAST(18 AS DOUBLE), 'youth', 'adult') = 'adult' Sql Validation fails with the error: org.apache.calcite.sql.validate.SqlValidatorException: Expression 'EMP.EMPNO' is not being grouped Root cause: A cast is applied to the group by clause, to make it GROUP BY if( CAST (EMP.empno AS DOUBLE) <= CAST(18 AS DOUBLE), 'youth', 'adult') But no such cast is applied to the Having Clause. Consequently, an equality comparison on the two fails -- This message was sent by Atlassian Jira (v8.20.10#820010)