db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kristian Waagan (JIRA)" <j...@apache.org>
Subject [jira] [Created] (DERBY-5823) Multi-row insert fails on table without generated keys with RETURN_GENERATED_KEYS
Date Wed, 20 Jun 2012 12:11:42 GMT
Kristian Waagan created DERBY-5823:

             Summary: Multi-row insert fails on table without generated keys with RETURN_GENERATED_KEYS
                 Key: DERBY-5823
                 URL: https://issues.apache.org/jira/browse/DERBY-5823
             Project: Derby
          Issue Type: Bug
          Components: JDBC
    Affects Versions:,,,
            Reporter: Kristian Waagan
            Priority: Minor

Exeuting an insert that results in multiple rows being inserted into a table without any generated
keys defined fails if the JDBC statement is configured to return generated keys. Example stack

Caused by: ERROR XSCH4: Conglomerate could not be created.
        at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:268)
        at org.apache.derby.impl.store.access.heap.Heap.create(Heap.java:296)
        at org.apache.derby.impl.store.access.heap.HeapConglomerateFactory.createConglomerate(HeapConglomerateFactory.java:206)
        at org.apache.derby.impl.store.access.RAMTransaction.createConglomerate(RAMTransaction.java:820)
        at org.apache.derby.impl.sql.execute.TemporaryRowHolderImpl.insert(TemporaryRowHolderImpl.java:302)
        at org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(InsertResultSet.java:1007)
        at org.apache.derby.impl.sql.execute.InsertResultSet.open(InsertResultSet.java:508)
        at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(GenericPreparedStatement.java:443)
        at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:324)
        at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1242)
        ... 30 more

This happens only with multi-row inserts, and only with the embedded driver (the client driver
The problem is that Derby tries to create a temporary conglomerate with a zero-length row
template. A guard against this scenario is probably missing.

FYI, the transition threshold (from in-memory to on-disk) is currently five rows.
I marked versions back to 10.7 as affected, but this bug probably goes back all the way.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message