db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rick Hillegas <Richard.Hille...@Sun.COM>
Subject Re: [jira] Updated: (DERBY-3616) TableFunctionTest fails under Ubuntu 7.10
Date Wed, 16 Apr 2008 00:31:13 GMT
Mike Matrigali wrote:
> Rick Hillegas wrote:
>> Thanks, Mike. I don't think I understand what the upgrade issues are. 
>> Could you explain?
>>
>> Regards,
>> -Rick
>>
> I may just have jumped in too soon, as I don't really understand what 
> the encoding that was a problem is actually doing.  I was just working 
> off the info in the bug and saw the word's encoding which felt like 
> something that was going to encode something that went to disk and 
> then would be read from
> disk later on subsequent database boots.  Anything like that would 
> seem like it might present problems if we have to change the encoding 
> in a new version of the software - so it would be easier to get it 
> "right" now rather than have multiple versions of it.
>
> Maybe you could explain what is being encoded and if it is actually ever
> making it to disk.  From description I was assuming it was in some 
> catalog that held the info about the table function.
Thanks for digging into this issue, Mike. What's being serialized (and 
encoded) is the signature of a Table Function. This serialized form is 
kept in the in-memory query plan and retrieved from memory when the 
Table Function is instantiated. I don't believe that these plans are 
ever stored on disk. If they were, I agree that we would want to sand 
this down now.

Regards,
-Rick
>
>
>> Mike Matrigali wrote:
>>> Knut's suggestions seems good.  Also whatever we decide it would be 
>>> nice to get this right in the 10.4 release to avoid any upgrade 
>>> issues with
>>> changing the format in the future.
>>>
>>> /mikem
>>>
>>> Knut Anders Hatlen (JIRA) wrote:
>>>>      [ 
>>>> https://issues.apache.org/jira/browse/DERBY-3616?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

>>>> ]
>>>>
>>>> Knut Anders Hatlen updated DERBY-3616:
>>>> --------------------------------------
>>>>
>>>>     Attachment: enc.diff
>>>>
>>>> I think the patch works, but I don't think we need to write our own 
>>>> code to perform encoding/decoding. Instead, we could use the 
>>>> constructor and getBytes() method that take the encoding parameter, 
>>>> and specify a well-known 8-bit encoding (for instance ISO-8859-1). 
>>>> See the attached patch for an example (this patch makes 
>>>> TableFunctionTest pass, but a real patch should probably create 
>>>> friendly helper methods around new String() and getBytes()). 
>>>> Another benefit with this approach, is that we waste less space 
>>>> (one byte maps to one char, whereas 
>>>> derby-3616-01-improvedEncoding.diff maps one byte to two chars).
>>>>
>>>>> TableFunctionTest fails under Ubuntu 7.10
>>>>> -----------------------------------------
>>>>>
>>>>>                 Key: DERBY-3616
>>>>>                 URL: https://issues.apache.org/jira/browse/DERBY-3616
>>>>>             Project: Derby
>>>>>          Issue Type: Bug
>>>>>          Components: Regression Test Failure
>>>>>    Affects Versions: 10.5.0.0
>>>>>         Environment: Operating System: Ubuntu 7.10
>>>>> JVMs tested: 1.4 and 1.6
>>>>>            Reporter: Tiago R. Espinha
>>>>>            Priority: Minor
>>>>>         Attachments: derby-3616-01-improvedEncoding.diff, enc.diff
>>>>>
>>>>>
>>>>> When running the test 
>>>>> org.apache.derbyTesting.functionTests.tests.lang.TableFunctionTest, 
>>>>> it fails with the output shown below. This test blocks the proper 
>>>>> execution of suites.All and it was tested under Ubuntu 7.10 (also 
>>>>> tested on Windows Vista and it doesn't throw an error there).
>>>>> There were 2 errors:
>>>>> 1) 
>>>>> noSpecialCollation(org.apache.derbyTesting.functionTests.tests.lang.TableFunctionTest)java.sql.SQLException:

>>>>> The exception 'java.lang.ClassNotFoundException: ERROR XBM0U: No 
>>>>> class was registered for identifier 495.' was thrown while 
>>>>> evaluating an expression.
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87)
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.Util.seeNextException(Util.java:223)
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:398)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2125)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.EmbedResultSet.closeOnTransactionError(EmbedResultSet.java:4320)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.EmbedResultSet.movePosition(EmbedResultSet.java:463)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.EmbedResultSet.next(EmbedResultSet.java:367)

>>>>>
>>>>>         at 
>>>>> org.apache.derbyTesting.functionTests.tests.lang.TableFunctionTest.assertResults(TableFunctionTest.java:1935)

>>>>>
>>>>>         at 
>>>>> org.apache.derbyTesting.functionTests.tests.lang.TableFunctionTest.assertResults(TableFunctionTest.java:1776)

>>>>>
>>>>>         at 
>>>>> org.apache.derbyTesting.functionTests.tests.lang.TableFunctionTest.assertResults(TableFunctionTest.java:1762)

>>>>>
>>>>>         at 
>>>>> org.apache.derbyTesting.functionTests.tests.lang.TableFunctionTest.simpleVTIResults(TableFunctionTest.java:1079)

>>>>>
>>>>>         at 
>>>>> org.apache.derbyTesting.functionTests.tests.lang.TableFunctionTest.tableFunctionTest(TableFunctionTest.java:920)

>>>>>
>>>>>         at 
>>>>> org.apache.derbyTesting.functionTests.tests.lang.TableFunctionTest.noSpecialCollation(TableFunctionTest.java:897)

>>>>>
>>>>>         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:103)

>>>>>
>>>>> Caused by: java.sql.SQLException: Java exception: 'ERROR XBM0U: No 
>>>>> class was registered for identifier 495.: 
>>>>> java.lang.ClassNotFoundException'.
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87)
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.Util.javaException(Util.java:244)
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:403)

>>>>>
>>>>>         ... 29 more
>>>>> Caused by: java.lang.ClassNotFoundException: ERROR XBM0U: No class 
>>>>> was registered for identifier 495.
>>>>>         at 
>>>>> org.apache.derby.iapi.services.io.FormatIdInputStream.readObject(FormatIdInputStream.java:129)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.catalog.types.TypeDescriptorImpl.readExternal(TypeDescriptorImpl.java:491)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.iapi.services.io.FormatIdInputStream.readObject(FormatIdInputStream.java:126)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.sql.execute.VTIResultSet.thawReturnType(VTIResultSet.java:696)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.sql.execute.VTIResultSet.getReturnColumnTypes(VTIResultSet.java:670)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.sql.execute.VTIResultSet.populateFromResultSet(VTIResultSet.java:559)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.sql.execute.VTIResultSet.getNextRowCore(VTIResultSet.java:347)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.getNextRow(BasicNoPutResultSetImpl.java:460)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.EmbedResultSet.movePosition(EmbedResultSet.java:423)

>>>>>
>>>>>         ... 23 more
>>>>> 2) 
>>>>> specialCollation(org.apache.derbyTesting.functionTests.tests.lang.TableFunctionTest)java.sql.SQLException:

>>>>> The exception 'java.lang.ClassNotFoundException: ERROR XBM0U: No 
>>>>> class was registered for identifier 495.' was thrown while 
>>>>> evaluating an expression.
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87)
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.Util.seeNextException(Util.java:223)
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:398)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:346)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:2125)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.EmbedResultSet.closeOnTransactionError(EmbedResultSet.java:4320)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.EmbedResultSet.movePosition(EmbedResultSet.java:463)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.EmbedResultSet.next(EmbedResultSet.java:367)

>>>>>
>>>>>         at 
>>>>> org.apache.derbyTesting.functionTests.tests.lang.TableFunctionTest.assertResults(TableFunctionTest.java:1935)

>>>>>
>>>>>         at 
>>>>> org.apache.derbyTesting.functionTests.tests.lang.TableFunctionTest.assertResults(TableFunctionTest.java:1776)

>>>>>
>>>>>         at 
>>>>> org.apache.derbyTesting.functionTests.tests.lang.TableFunctionTest.assertResults(TableFunctionTest.java:1762)

>>>>>
>>>>>         at 
>>>>> org.apache.derbyTesting.functionTests.tests.lang.TableFunctionTest.simpleVTIResults(TableFunctionTest.java:1079)

>>>>>
>>>>>         at 
>>>>> org.apache.derbyTesting.functionTests.tests.lang.TableFunctionTest.tableFunctionTest(TableFunctionTest.java:920)

>>>>>
>>>>>         at 
>>>>> org.apache.derbyTesting.functionTests.tests.lang.TableFunctionTest.specialCollation(TableFunctionTest.java:907)

>>>>>
>>>>>         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:103)

>>>>>
>>>>>         at 
>>>>> junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
>>>>>         at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
>>>>>         at junit.extensions.TestSetup.run(TestSetup.java:23)
>>>>>         at 
>>>>> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)

>>>>>
>>>>>         at 
>>>>> junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
>>>>>         at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
>>>>>         at junit.extensions.TestSetup.run(TestSetup.java:23)
>>>>>         at 
>>>>> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)

>>>>>
>>>>>         at 
>>>>> junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
>>>>>         at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
>>>>>         at junit.extensions.TestSetup.run(TestSetup.java:23)
>>>>> Caused by: java.sql.SQLException: Java exception: 'ERROR XBM0U: No 
>>>>> class was registered for identifier 495.: 
>>>>> java.lang.ClassNotFoundException'.
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:87)
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.Util.javaException(Util.java:244)
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:403)

>>>>>
>>>>>         ... 45 more
>>>>> Caused by: java.lang.ClassNotFoundException: ERROR XBM0U: No class 
>>>>> was registered for identifier 495.
>>>>>         at 
>>>>> org.apache.derby.iapi.services.io.FormatIdInputStream.readObject(FormatIdInputStream.java:129)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.catalog.types.TypeDescriptorImpl.readExternal(TypeDescriptorImpl.java:491)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.iapi.services.io.FormatIdInputStream.readObject(FormatIdInputStream.java:126)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.sql.execute.VTIResultSet.thawReturnType(VTIResultSet.java:696)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.sql.execute.VTIResultSet.getReturnColumnTypes(VTIResultSet.java:670)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.sql.execute.VTIResultSet.populateFromResultSet(VTIResultSet.java:559)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.sql.execute.VTIResultSet.getNextRowCore(VTIResultSet.java:347)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.sql.execute.BasicNoPutResultSetImpl.getNextRow(BasicNoPutResultSetImpl.java:460)

>>>>>
>>>>>         at 
>>>>> org.apache.derby.impl.jdbc.EmbedResultSet.movePosition(EmbedResultSet.java:423)

>>>>>
>>>>>         ... 39 more
>>>>> FAILURES!!!
>>>>> Tests run: 2,  Failures: 0,  Errors: 2
>>>>
>>>
>>
>>
>


Mime
View raw message