db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tom Deering (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (DERBY-5981) Derby INSERT Consumes Lots of Stack Space, Causes java.lang.StackOverflowError
Date Sun, 04 Nov 2012 20:10:12 GMT

     [ https://issues.apache.org/jira/browse/DERBY-5981?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Tom Deering updated DERBY-5981:

    Summary: Derby INSERT Consumes Lots of Stack Space, Causes java.lang.StackOverflowError
 (was: Derby INSERT Causes java.lang.StackOverflowError)
> Derby INSERT Consumes Lots of Stack Space, Causes java.lang.StackOverflowError
> ------------------------------------------------------------------------------
>                 Key: DERBY-5981
>                 URL: https://issues.apache.org/jira/browse/DERBY-5981
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions:
>         Environment: Ubuntu Linux 12.04.1 64-bit, Sun Java 1.7.0_09, Derby
>            Reporter: Tom Deering
> Apache Derby causes a java.lang.StackOverflowError with large INSERT statements.
Here, "large" means 5000+ rows. I am using Derby in my Java application with the EmbeddedDriver
in the following way:
> Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
> Connection connection = DriverManager.getConnection("jdbc:derby:<db path>;create=true;upgrade=true")
> String insertString = buildSQLInsertString();
> Statement stmt = connection.createStatement();
> stmt.execute(insertString); // StackOverflowError
> I have tried calling this in different ways, including with PreparedStatement. I have
also tried increasing derby.storage.pageSize, to no effect. If I increase the VM argument
-Xss to something insanely big, then after a long delay I get:
> SQL Error: Statement too complex. Try rewriting the query to remove complexity. Eliminating
many duplicate expressions or breaking up the query and storing interim results in a temporary
table can often help resolve this error.
> My code works fine for smallish inserts, but overflows the stack for anything modestly
large. I can't tell if DERBY is using an unreasonably large amount of stack space with INSERT,
or if my insert size is actually unreasonable.
> I'm a newcomer to database development and also to Apache Derby, so suggestions for details
to make this bug report more useful would be welcome.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

View raw message