db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike Matrigali <mikem_...@sbcglobal.net>
Subject Re: [jira] Updated: (DERBY-3616) TableFunctionTest fails under Ubuntu 7.10
Date Wed, 16 Apr 2008 16:32:28 GMT
Rick Hillegas wrote:
> 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
In that case I remove my reservation, and agree that if it works now we 
can release and improve it later, with no upgrade worries.

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