I' m using calcite for some testing, I found calcite does not support grouping alias:
SQL: select id as a from table group by a calcite throws flowing exception in validate phase: Caused by: org.apache.calcite.runtime.CalciteContextException: At line 1, column 44: Column 'A' not found in any table at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.7.0_79] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) ~[na:1.7.0_79] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.7.0_79] at java.lang.reflect.Constructor.newInstance(Constructor.java:526) ~[na:1.7.0_79] at org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:405) ~[classes/:na] at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:768) ~[classes/:na] at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:753) ~[classes/:na] at org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:3929) ~[classes/:na] at org.apache.calcite.sql.validate.EmptyScope.findQualifyingTableName(EmptyScope.java:108) ~[classes/:na] at org.apache.calcite.sql.validate.DelegatingScope.findQualifyingTableName(DelegatingScope.java:112) ~[classes/:na] at org.apache.calcite.sql.validate.ListScope.findQualifyingTableName(ListScope.java:150) ~[classes/:na] at org.apache.calcite.sql.validate.DelegatingScope.fullyQualify(DelegatingScope.java:155) ~[classes/:na] at org.apache.calcite.sql.validate.SqlValidatorImpl.validateIdentifier(SqlValidatorImpl.java:2589) ~[classes/:na] at org.apache.calcite.sql.SqlIdentifier.validateExpr(SqlIdentifier.java:287) ~[classes/:na] at org.apache.calcite.sql.validate.SqlValidatorImpl.validateGroupClause(SqlValidatorImpl.java:3305) ~[classes/:na] at org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:2959) ~[classes/:na] at org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:60) ~[classes/:na] at org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:86) ~[classes/:na] at org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:845) ~[classes/:na] at org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:831) ~[classes/:na] at org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:208) ~[classes/:na] at org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:807) ~[classes/:na] at org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:523) ~[classes/:na]
