Hello Jim,

Is it possible to try this query out with the latest GA release 10.2.1.6 ?

http://db.apache.org/derby/derby_downloads.html#Latest+Official+Release

There have been some fixes in the related code generation areas for 10.2:
DERBY-766, DERBY-1714 etc.

Also, can post the schema that can  reproduce this issue ?

Regards,
Rajesh





Jim Newsham wrote:

Hi everyone,

I thought the problem would go away if I gave Derby a better written query,
so I fixed my query generator to be a bit smarter.  Unfortunately, I still
get a stack overflow error.  Here's the new query:

ij(SAMPLEBASE)> select count(*) from time where time.id in (select time.id
from time, double_sample, band where band.id = double_sample.fk_band_id and
double_sample.fk_time_id = time.id and (band.id = 39 or band.id = 55));
1
-----------
ERROR 38000: The exception 'java.lang.StackOverflowError' was thrown while
evaluating an expression. SQLSTATE: XJ001: Java exception: ':
java.lang.StackOverflowError'.


This looks like an ugly bug for such a simple query.  I didn't find any bug
in jira which seemed to relate to this. Is this a known bug?
Any advice on how to work around the problem is appreciated.

I'm using Derby 10.1.3.1.

Thanks,
Jim

P.S.  I just included the outer query ("select count(*) from..") to
reproduce the problem in ij.  My program actually uses jdbc, executes the
inner query, and calls ResultSet.last().  The result is the same, a
StackOverflowError.  Here's the stack trace I get in my app:

Caused by: org.apache.derby.client.am.SqlException: The exception
'java.lang.StackOverflowError' was thrown while evaluating an expression.
SQLSTATE: XJ001: Java exception: ': java.lang.StackOverflowError'.
       at org.apache.derby.client.am.ResultSet.completeSqlca(Unknown
Source)
       at
org.apache.derby.client.net.NetResultSetReply.parseFetchError(Unknown
Source)
       at
org.apache.derby.client.net.NetResultSetReply.parseCNTQRYreply(Unknown
Source)
       at
org.apache.derby.client.net.NetResultSetReply.readPositioningFetch(Unknown
Source)
       at
org.apache.derby.client.net.ResultSetReply.readPositioningFetch(Unknown
Source)
       at
org.apache.derby.client.net.NetResultSet.readPositioningFetch_(Unknown
Source)
       at org.apache.derby.client.am.ResultSet.getRowCount(Unknown Source)
       at org.apache.derby.client.am.ResultSet.lastX(Unknown Source)
       at org.apache.derby.client.am.ResultSet.last(Unknown Source)
       at
com.referentia.sdf.monitor.samplebase.derby.QueryDataSet.getSize(QueryDataSe
t.java:139)


-----Original Message-----
From: Jim Newsham [mailto:[EMAIL PROTECTED]
Sent: Monday, November 06, 2006 11:21 AM
To: 'Derby Discussion'
Subject: StackOverflowError


Any reason why I should get a stack overflow error with the following
query?

Yes, I know the query is a bit odd... it's not hand-written.  The query
generator could be optimized.  Nevertheless... is the stack overflow here
considered a bug or a limitation?  If limitation, what specifically is the
limitation?


ij(SAMPLEBASE)> select count(*) from time where time.id in (select time.id
from time, double_sample, band where band.id = double_sample.fk_band_id
and
double_sample.fk_time_id = time.id and band.id = 57 union select id from
time where 1 = 0);
1
-----------
ERROR 38000: The exception 'java.lang.StackOverflowError' was thrown while
evaluating an expression. SQLSTATE: XJ001: Java exception: ':
java.lang.StackOverflowError'.

Thanks,
Jim







Reply via email to