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 "Ralf Menzel (JIRA)" <ji...@apache.org> on 2014/09/26 16:27:33 UTC
[jira] [Created] (DERBY-6750) Query parsing seems to hang forever
in ColumnReference.getSourceResultSet
Ralf Menzel created DERBY-6750:
----------------------------------
Summary: Query parsing seems to hang forever in ColumnReference.getSourceResultSet
Key: DERBY-6750
URL: https://issues.apache.org/jira/browse/DERBY-6750
Project: Derby
Issue Type: Bug
Components: SQL
Affects Versions: 10.11.1.1
Reporter: Ralf Menzel
We have an application that programmatically generates queries. For some queries the call of Connection.prepareStatement never returns. I took one of these queries and simplified until I got the following query:
SELECT * FROM (
SELECT 1 AS X FROM SYSIBM.SYSDUMMY1
) Q1 NATURAL JOIN (
SELECT X FROM (
SELECT 1 AS X FROM SYSIBM.SYSDUMMY1
) Q2 UNION SELECT X FROM (
SELECT 2 AS X FROM SYSIBM.SYSDUMMY1
) Q3
) Q4;
When I execute this query with ij it never produces a result.
A typical stack trace of our application when it hangs starts like this:
java.lang.Exception: test timed out after 250 milliseconds
at org.apache.derby.impl.sql.compile.ColumnReference.getSourceResultSet(Unknown Source)
at org.apache.derby.impl.sql.compile.BinaryRelationalOperatorNode.getScopedOperand(Unknown Source)
at org.apache.derby.impl.sql.compile.Predicate.getPredScopedForResultSet(Unknown Source)
at org.apache.derby.impl.sql.compile.SetOperatorNode.pushOptPredicate(Unknown Source)
at org.apache.derby.impl.sql.compile.UnionNode.optimizeIt(Unknown Source)
at org.apache.derby.impl.sql.compile.ProjectRestrictNode.optimizeIt(Unknown Source)
at org.apache.derby.impl.sql.compile.OptimizerImpl.costPermutation(Unknown Source)
at org.apache.derby.impl.sql.compile.SelectNode.optimize(Unknown Source)
at org.apache.derby.impl.sql.compile.ProjectRestrictNode.optimizeIt(Unknown Source)
at org.apache.derby.impl.sql.compile.OptimizerImpl.costPermutation(Unknown Source)
at org.apache.derby.impl.sql.compile.SelectNode.optimize(Unknown Source)
at org.apache.derby.impl.sql.compile.DMLStatementNode.optimizeStatement(Unknown Source)
at org.apache.derby.impl.sql.compile.CursorNode.optimizeStatement(Unknown Source)
at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement40.<init>(Unknown Source)
at org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source)
...
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)