I see that after my backport for DERBY-5680 to 10.8,
lang.UpdateStatisticsTest has started failing on 10.8. I don't understand
why the test fails on Sun's machine but not on my Windows XP with IBM jdk
1.6. I am looking more into this. The failure reported on Sun's runs of the
test is as follows

    junit.framework.AssertionFailedError: Index statistics for <ALL TABLES>
1: {tableId=25347265-013f-8c71-7445-fffff6662cff,
tableName=DISPOSABLE_STATS_EAGERNESS_FK, indexName=SQL130628223832620,
lcols=1, rows=1000, unique/card=1000, created=2013-06-28 22:38:32.672}
2: {tableId=f0cfb26b-013f-8c71-7445-fffff6662cff,
tableName=DISPOSABLE_STATS_EAGERNESS,
indexName=NU_DISPOSABLE_STATS_EAGERNESS, lcols=1, rows=1000,
unique/card=35, created=2013-06-28 22:38:32.688}
3: {tableId=f0cfb26b-013f-8c71-7445-fffff6662cff,
tableName=DISPOSABLE_STATS_EAGERNESS, indexName=SQL130628223832640,
lcols=1, rows=1000, unique/card=1000, created=2013-06-28 22:38:32.672}
4: {tableId=f0cfb26b-013f-8c71-7445-fffff6662cff,
tableName=DISPOSABLE_STATS_EAGERNESS, indexName=SQL130628223832621,
lcols=1, rows=1000, unique/card=1000, created=2013-06-28 22:38:32.672}
5: {tableId=f0cfb26b-013f-8c71-7445-fffff6662cff,
tableName=DISPOSABLE_STATS_EAGERNESS, indexName=SQL130628223832621,
lcols=2, rows=1000, unique/card=1000, created=2013-06-28 22:38:32.672}
 expected:<0> but was:<5>
        at 
org.apache.derbyTesting.junit.IndexStatsUtil.assertStats(IndexStatsUtil.java:132)
        at 
org.apache.derbyTesting.junit.IndexStatsUtil.assertNoStats(IndexStatsUtil.java:109)
        at 
org.apache.derbyTesting.functionTests.tests.lang.UpdateStatisticsTest.testUpdateStatistics(UpdateStatisticsTest.java:93)
        at 
org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:113)
        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 
org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)



  3246 
org.apache.derbyTesting.functionTests.tests.lang.UpdateStatisticsTest.testUpdateStatistics
 0.468 s

    junit.framework.AssertionFailedError: Index statistics for <ALL TABLES>
1: {tableId=10947565-013f-8c71-7445-fffff6662cff,
tableName=DISPOSABLE_STATS_EAGERNESS_FK, indexName=SQL130628223838830,
lcols=1, rows=1000, unique/card=1000, created=2013-06-28 22:38:38.913}
2: {tableId=e0afb56b-013f-8c71-7445-fffff6662cff,
tableName=DISPOSABLE_STATS_EAGERNESS,
indexName=NU_DISPOSABLE_STATS_EAGERNESS, lcols=1, rows=1000,
unique/card=35, created=2013-06-28 22:38:38.929}
3: {tableId=e0afb56b-013f-8c71-7445-fffff6662cff,
tableName=DISPOSABLE_STATS_EAGERNESS, indexName=SQL130628223838851,
lcols=1, rows=1000, unique/card=1000, created=2013-06-28 22:38:38.913}
4: {tableId=e0afb56b-013f-8c71-7445-fffff6662cff,
tableName=DISPOSABLE_STATS_EAGERNESS, indexName=SQL130628223838850,
lcols=1, rows=1000, unique/card=1000, created=2013-06-28 22:38:38.913}
5: {tableId=e0afb56b-013f-8c71-7445-fffff6662cff,
tableName=DISPOSABLE_STATS_EAGERNESS, indexName=SQL130628223838850,
lcols=2, rows=1000, unique/card=1000, created=2013-06-28 22:38:38.913}
 expected:<0> but was:<5>
        at 
org.apache.derbyTesting.junit.IndexStatsUtil.assertStats(IndexStatsUtil.java:132)
        at 
org.apache.derbyTesting.junit.IndexStatsUtil.assertNoStats(IndexStatsUtil.java:109)
        at 
org.apache.derbyTesting.functionTests.tests.lang.UpdateStatisticsTest.testUpdateStatistics(UpdateStatisticsTest.java:93)
        at 
org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:113)
        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)
        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)

  Here is the test snippet where it's failing
     */
    public void testUpdateStatistics() throws SQLException {
        // Helper object to obtain information about index statistics.
        IndexStatsUtil stats = new IndexStatsUtil(openDefaultConnection());
        Statement s = createStatement();
        //following should fail because table APP.T1 does not exist
        assertStatementError("42Y55", s,
            "CALL SYSCS_UTIL.SYSCS_UPDATE_STATISTICS('APP','T1',null)");
        s.executeUpdate("CREATE TABLE t1 (c11 int, c12 varchar(128))");
        //following will pass now because we have created APP.T1
        s.execute("CALL SYSCS_UTIL.SYSCS_UPDATE_STATISTICS('APP','T1',null)");
        //following should fail because index I1 does not exist on table APP.T1
        assertStatementError("42X65", s,
            "CALL SYSCS_UTIL.SYSCS_UPDATE_STATISTICS('APP','T1','I1')");
        s.executeUpdate("CREATE INDEX i1 on t1(c12)");
        //following will pass now because we have created index I1 on APP.T1
        s.execute("CALL SYSCS_UTIL.SYSCS_UPDATE_STATISTICS('APP','T1','I1')");

        //The following set of subtest will ensure that when an index is
        //created on a table when there is no data in the table, then Derby
        //will not generate a row for it in sysstatistics table. If the index
        //is created after the table has data on it, there will be a row for
        //it in sysstatistics table. In order to generate statistics for the
        //first index, users can run the stored procedure
        //SYSCS_UPDATE_STATISTICS
        //So far the table t1 is empty and we have already created index I1 on
        //it. Since three was no data in the table when index I1 was created,
        //there will be no row in sysstatistics table
        stats.assertNoStats();





---------- Forwarded message ----------
From: <[email protected]>
Date: Fri, Jun 28, 2013 at 5:23 PM
Subject: [Java DB - testing] Error nightly 10.8 (rev 1497868)
To: [email protected]


Java DB testing and reporting infrastructure.

Error nightly 10.8 (rev 1497868)

There were execution errors and/or timeouts.
There were at least 2 failures.

Test report:
http://download.java.net/javadesktop/derby/javadb-5579017-report/

Reply via email to