Mihai Budiu created CALCITE-7193:
------------------------------------

             Summary: In an aggregation validator treats lambda variable names 
as column names
                 Key: CALCITE-7193
                 URL: https://issues.apache.org/jira/browse/CALCITE-7193
             Project: Calcite
          Issue Type: Bug
          Components: core
    Affects Versions: 1.40.0
            Reporter: Mihai Budiu


This produces validation errors for legal queries:
{code:sql}
SELECT "EXISTS"(ARRAY_AGG(empno), x -> x > 1) AS B FROM emp GROUP BY deptno
{code}

leads to 

{code}
org.apache.calcite.sql.validate.SqlValidatorException: Expression 'X' is not 
being grouped
        at 
java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:67)
        at 
java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
        at 
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:484)
        at 
org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:511)
        at org.apache.calcite.runtime.Resources$ExInst.ex(Resources.java:605)
        at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:960)
        at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:945)
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:5960)
        at org.apache.calcite.sql.validate.AggChecker.visit(AggChecker.java:136)
        at org.apache.calcite.sql.validate.AggChecker.visit(AggChecker.java:43)
        at org.apache.calcite.sql.SqlIdentifier.accept(SqlIdentifier.java:324)
        at 
org.apache.calcite.sql.util.SqlBasicVisitor.visit(SqlBasicVisitor.java:54)
{code}

Clearly, AggChecker should treat lambda parameters differently.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to