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 "Myrna van Lunteren (JIRA)" <ji...@apache.org> on 2012/09/21 20:31:07 UTC

[jira] [Updated] (DERBY-5855) Secondary index problem in CheckConstraintTest

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

Myrna van Lunteren updated DERBY-5855:
--------------------------------------

    Component/s: Store
         Labels: derby_triage10_10  (was: )

I don't think this has happened again?

Rick, did you mark this 'test' because it was a test that failed?
Or did you have a more specific reasoning? The test for DERBY-3947 is very simple here:

        Statement st = createStatement();
        st.executeUpdate("create table d3947 (x varchar(1000) primary key)");
        char[] chars = new char[994];
        PreparedStatement ps = prepareStatement("insert into d3947 values (?)");
        ps.setString(1, new String(chars));
        ps.executeUpdate();

For now, marking store as well as test.
I looked at the revision that fixed DERBY-3947 but it looks fine to me, perhaps someone familiar with the code can see a problem.

Interestingly, there is a comment above the line which threw the Exception in BTreeController:
"                // RESOLVE (mikem) - another long row issue.
                // For now if a row does not fit on a page and there 
                // is only the control row on the page and at most one
                // other row on the page, throw an exception"
                
> Secondary index problem in CheckConstraintTest
> ----------------------------------------------
>
>                 Key: DERBY-5855
>                 URL: https://issues.apache.org/jira/browse/DERBY-5855
>             Project: Derby
>          Issue Type: Bug
>          Components: Store, Test
>            Reporter: Rick Hillegas
>              Labels: derby_triage10_10
>
> On a fresh subversion client sync'd to the head of the trunk, I am seeing the following errors in CheckConstraintTest:
> There were 2 errors:
> 1) testPrimaryKeyPageSizeDerby3947(org.apache.derbyTesting.functionTests.tests.lang.CheckConstraintTest)java.sql.SQLException: Limitation: Record of a btree secondary index cannot be updated or inserted due to lack of space on the page.  Use the parameters derby.storage.pageSize and/or derby.storage.pageReservedSpace to work around this limitation.
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:98)
> 	at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java:256)
> 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:424)
> 	at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:353)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2360)
> 	at org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:82)
> 	at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1334)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java:1715)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(EmbedPreparedStatement.java:311)
> 	at org.apache.derbyTesting.functionTests.tests.lang.CheckConstraintTest.testPrimaryKeyPageSizeDerby3947(CheckConstraintTest.java:895)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:117)
> 	at org.apache.derbyTesting.junit.BaseJDBCTestCase.runBareOverridable(BaseJDBCTestCase.java:424)
> 	at org.apache.derbyTesting.junit.BaseJDBCTestCase.runBare(BaseJDBCTestCase.java:441)
> 	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> 	at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> 	at junit.extensions.TestSetup.run(TestSetup.java:25)
> 	at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> Caused by: java.sql.SQLException: Limitation: Record of a btree secondary index cannot be updated or inserted due to lack of space on the page.  Use the parameters derby.storage.pageSize and/or derby.storage.pageReservedSpace to work around this limitation.
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:42)
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(SQLExceptionFactory40.java:122)
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:71)
> 	... 36 more
> Caused by: ERROR XSCB6: Limitation: Record of a btree secondary index cannot be updated or inserted due to lack of space on the page.  Use the parameters derby.storage.pageSize and/or derby.storage.pageReservedSpace to work around this limitation.
> 	at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:268)
> 	at org.apache.derby.impl.store.access.btree.BTreeController.doIns(BTreeController.java:958)
> 	at org.apache.derby.impl.store.access.btree.BTreeController.insert(BTreeController.java:1373)
> 	at org.apache.derby.impl.store.access.btree.index.B2IController.insert(B2IController.java:210)
> 	at org.apache.derby.impl.sql.execute.IndexChanger.insertAndCheckDups(IndexChanger.java:440)
> 	at org.apache.derby.impl.sql.execute.IndexChanger.doInsert(IndexChanger.java:383)
> 	at org.apache.derby.impl.sql.execute.IndexChanger.insert(IndexChanger.java:590)
> 	at org.apache.derby.impl.sql.execute.IndexSetChanger.insert(IndexSetChanger.java:268)
> 	at org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow(RowChangerImpl.java:453)
> 	at org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(InsertResultSet.java:1048)
> 	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
> 2) testPrimaryKeyPageSizeDerby3947(org.apache.derbyTesting.functionTests.tests.lang.CheckConstraintTest)java.sql.SQLTransactionRollbackException: Limitation: Record of a btree secondary index cannot be updated or inserted due to lack of space on the page.  Use the parameters derby.storage.pageSize and/or derby.storage.pageReservedSpace to work around this limitation.
> 	at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:103)
> 	at org.apache.derby.client.am.SqlException.getSQLException(SqlException.java:364)
> 	at org.apache.derby.client.am.PreparedStatement.executeUpdate(PreparedStatement.java:412)
> 	at org.apache.derbyTesting.functionTests.tests.lang.CheckConstraintTest.testPrimaryKeyPageSizeDerby3947(CheckConstraintTest.java:895)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:117)
> 	at org.apache.derbyTesting.junit.BaseJDBCTestCase.runBareOverridable(BaseJDBCTestCase.java:424)
> 	at org.apache.derbyTesting.junit.BaseJDBCTestCase.runBare(BaseJDBCTestCase.java:441)
> 	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> 	at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> 	at junit.extensions.TestSetup.run(TestSetup.java:25)
> 	at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> 	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> 	at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> 	at junit.extensions.TestSetup.run(TestSetup.java:25)
> 	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> 	at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> 	at junit.extensions.TestSetup.run(TestSetup.java:25)
> 	at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> Caused by: org.apache.derby.client.am.SqlException: Limitation: Record of a btree secondary index cannot be updated or inserted due to lack of space on the page.  Use the parameters derby.storage.pageSize and/or derby.storage.pageReservedSpace to work around this limitation.
> 	at org.apache.derby.client.am.Statement.completeExecute(Statement.java:1604)
> 	at org.apache.derby.client.net.NetStatementReply.parseEXCSQLSTTreply(NetStatementReply.java:322)
> 	at org.apache.derby.client.net.NetStatementReply.readExecute(NetStatementReply.java:71)
> 	at org.apache.derby.client.net.StatementReply.readExecute(StatementReply.java:55)
> 	at org.apache.derby.client.net.NetPreparedStatement.readExecute_(NetPreparedStatement.java:167)
> 	at org.apache.derby.client.am.PreparedStatement.readExecute(PreparedStatement.java:1816)
> 	at org.apache.derby.client.am.PreparedStatement.flowExecute(PreparedStatement.java:2113)
> 	at org.apache.derby.client.am.PreparedStatement.executeUpdateX(PreparedStatement.java:417)
> 	at org.apache.derby.client.am.PreparedStatement.executeUpdate(PreparedStatement.java:403)
> 	... 37 more
> FAILURES!!!
> Tests run: 14,  Failures: 0,  Errors: 2

--
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