You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Dag H. Wanvik (JIRA)" <ji...@apache.org> on 2009/10/09 05:31:31 UTC
[jira] Updated: (DERBY-4402) Assert failure (sane) or Array out of
bounds error (insane) when attempting to GROUP BY accumulator function
[ https://issues.apache.org/jira/browse/DERBY-4402?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dag H. Wanvik updated DERBY-4402:
---------------------------------
Description:
The error checking fails to catch this wrong usage (accumulator function inside a group by column expression.
:
select sum(i) from t group by (4+sum(j))
:
java.sql.SQLException: Java exception: 'ASSERT FAILED Unexpected Aggregate vector generated by Group By clause: org.apache.derby.shared.common.sanity.AssertFailure'.
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:119)
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:70)
... 16 more
Caused by: org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED Unexpected Aggregate vector generated by Group By clause
at org.apache.derby.shared.common.sanity.SanityManager.ASSERT(SanityManager.java:120)
at org.apache.derby.impl.sql.compile.SelectNode.bindExpressions(SelectNode.java:648)
at org.apache.derby.impl.sql.compile.DMLStatementNode.bindExpressions(DMLStatementNode.java:227)
at org.apache.derby.impl.sql.compile.DMLStatementNode.bind(DMLStatementNode.java:140)
at org.apache.derby.impl.sql.compile.CursorNode.bindStatement(CursorNode.java:249)
at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:319)
at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:88)
at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:824)
at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:606)
... 9 more
The parser has a check against the top node of a "groupingColumnReference" being an aggregator, but fails to "see" inside an expression.
Maybe this check should be made by a visitor in the bind phase instead.
was:
The error checking fails to catch this wrong usage (accumulator function sinde a group by column expression
:
select sum(i) from t group by (4+sum(j))
:
java.sql.SQLException: Java exception: 'ASSERT FAILED Unexpected Aggregate vector generated by Group By clause: org.apache.derby.shared.common.sanity.AssertFailure'.
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:119)
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:70)
... 16 more
Caused by: org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED Unexpected Aggregate vector generated by Group By clause
at org.apache.derby.shared.common.sanity.SanityManager.ASSERT(SanityManager.java:120)
at org.apache.derby.impl.sql.compile.SelectNode.bindExpressions(SelectNode.java:648)
at org.apache.derby.impl.sql.compile.DMLStatementNode.bindExpressions(DMLStatementNode.java:227)
at org.apache.derby.impl.sql.compile.DMLStatementNode.bind(DMLStatementNode.java:140)
at org.apache.derby.impl.sql.compile.CursorNode.bindStatement(CursorNode.java:249)
at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:319)
at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:88)
at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:824)
at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:606)
... 9 more
The parser has a check against the top node of a "groupingColumnReference" being an aggregator, but fails to "see" inside an expression.
Maybe this check should be made by a visitor in the bind phase instead.
> Assert failure (sane) or Array out of bounds error (insane) when attempting to GROUP BY accumulator function
> ------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-4402
> URL: https://issues.apache.org/jira/browse/DERBY-4402
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.5.3.0
> Reporter: Dag H. Wanvik
> Priority: Minor
>
> The error checking fails to catch this wrong usage (accumulator function inside a group by column expression.
> :
> select sum(i) from t group by (4+sum(j))
> :
> java.sql.SQLException: Java exception: 'ASSERT FAILED Unexpected Aggregate vector generated by Group By clause: org.apache.derby.shared.common.sanity.AssertFailure'.
> at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)
> at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:119)
> at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:70)
> ... 16 more
> Caused by: org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED Unexpected Aggregate vector generated by Group By clause
> at org.apache.derby.shared.common.sanity.SanityManager.ASSERT(SanityManager.java:120)
> at org.apache.derby.impl.sql.compile.SelectNode.bindExpressions(SelectNode.java:648)
> at org.apache.derby.impl.sql.compile.DMLStatementNode.bindExpressions(DMLStatementNode.java:227)
> at org.apache.derby.impl.sql.compile.DMLStatementNode.bind(DMLStatementNode.java:140)
> at org.apache.derby.impl.sql.compile.CursorNode.bindStatement(CursorNode.java:249)
> at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:319)
> at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:88)
> at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:824)
> at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:606)
> ... 9 more
> The parser has a check against the top node of a "groupingColumnReference" being an aggregator, but fails to "see" inside an expression.
> Maybe this check should be made by a visitor in the bind phase instead.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.