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