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 "Knut Anders Hatlen (JIRA)" <ji...@apache.org> on 2008/05/02 14:46:55 UTC

[jira] Created: (DERBY-3658) LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2

LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2
-----------------------------------------------------------------------------------------------------

                 Key: DERBY-3658
                 URL: https://issues.apache.org/jira/browse/DERBY-3658
             Project: Derby
          Issue Type: Bug
          Components: JDBC, Network Client
    Affects Versions: 10.4.1.3
            Reporter: Knut Anders Hatlen
            Priority: Minor


Reported by Daniel Noll on derby-user: http://thread.gmane.org/gmane.comp.apache.db.derby.user/9107

To reproduce:

  1. Create a database with Derby 10.2.2.0
  2. Create a table with a clob column and insert some data
  3. Access that database with client+server at version 10.4.1.3 and iterate through the rows in the table

You'll see an error message like this:

ERROR 42Y03: 'SYSIBM.CLOBRELEASELOCATOR' is not recognized as a function or procedure.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (DERBY-3658) LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2

Posted by "Knut Anders Hatlen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-3658?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Knut Anders Hatlen updated DERBY-3658:
--------------------------------------

    Affects Version/s: 10.3.2.2

Yes, I'll do that. I didn't think the bug affected 10.3, but it seems like LOBStateTracker is present on the 10.3 branch as well. Added 10.3.2.2 to the list of affected versions.

> LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2
> -----------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-3658
>                 URL: https://issues.apache.org/jira/browse/DERBY-3658
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC, Network Client
>    Affects Versions: 10.3.2.2, 10.4.1.3
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>            Priority: Minor
>         Attachments: d3658.diff
>
>
> Reported by Daniel Noll on derby-user: http://thread.gmane.org/gmane.comp.apache.db.derby.user/9107
> To reproduce:
>   1. Create a database with Derby 10.2.2.0
>   2. Create a table with a clob column and insert some data
>   3. Access that database with client+server at version 10.4.1.3 and iterate through the rows in the table
> You'll see an error message like this:
> ERROR 42Y03: 'SYSIBM.CLOBRELEASELOCATOR' is not recognized as a function or procedure.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (DERBY-3658) LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2

Posted by "Knut Anders Hatlen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-3658?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Knut Anders Hatlen updated DERBY-3658:
--------------------------------------

    Attachment: d3658.diff

The attached patch seems to fix the problem (no regression tests have been run yet).

The problem is that the client doesn't know the version of the database accessed on the server, so a LOBStateTracker is created if the server supports locators, which does not necessarily mean that the database supports locators. The code that fetches LOBs knows how to handle this, and sets the locator to -1 if locators aren't supported. The patch therefore checks that the locator is valid before it releases it in LOBStateTracker.checkCurrentRow(). Since the locator value is invalid when locators aren't supported, this means that it won't try to call the missing stored procedures.

> LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2
> -----------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-3658
>                 URL: https://issues.apache.org/jira/browse/DERBY-3658
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC, Network Client
>    Affects Versions: 10.4.1.3
>            Reporter: Knut Anders Hatlen
>            Priority: Minor
>         Attachments: d3658.diff
>
>
> Reported by Daniel Noll on derby-user: http://thread.gmane.org/gmane.comp.apache.db.derby.user/9107
> To reproduce:
>   1. Create a database with Derby 10.2.2.0
>   2. Create a table with a clob column and insert some data
>   3. Access that database with client+server at version 10.4.1.3 and iterate through the rows in the table
> You'll see an error message like this:
> ERROR 42Y03: 'SYSIBM.CLOBRELEASELOCATOR' is not recognized as a function or procedure.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (DERBY-3658) LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2

Posted by "Kathey Marsden (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/DERBY-3658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12593843#action_12593843 ] 

Kathey Marsden commented on DERBY-3658:
---------------------------------------

Can you backport it to 10.3 as well?


> LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2
> -----------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-3658
>                 URL: https://issues.apache.org/jira/browse/DERBY-3658
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC, Network Client
>    Affects Versions: 10.4.1.3
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>            Priority: Minor
>         Attachments: d3658.diff
>
>
> Reported by Daniel Noll on derby-user: http://thread.gmane.org/gmane.comp.apache.db.derby.user/9107
> To reproduce:
>   1. Create a database with Derby 10.2.2.0
>   2. Create a table with a clob column and insert some data
>   3. Access that database with client+server at version 10.4.1.3 and iterate through the rows in the table
> You'll see an error message like this:
> ERROR 42Y03: 'SYSIBM.CLOBRELEASELOCATOR' is not recognized as a function or procedure.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (DERBY-3658) LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2

Posted by "Knut Anders Hatlen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/DERBY-3658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12593914#action_12593914 ] 

Knut Anders Hatlen commented on DERBY-3658:
-------------------------------------------

Ops, sorry, I missed your comment about having started back-porting it to 10.3. Some extra testing doesn't hurt though. Thanks!

> LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2
> -----------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-3658
>                 URL: https://issues.apache.org/jira/browse/DERBY-3658
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC, Network Client
>    Affects Versions: 10.3.2.2, 10.4.1.3
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>            Priority: Minor
>             Fix For: 10.3.2.2, 10.4.1.4, 10.5.0.0
>
>         Attachments: d3658.diff
>
>
> Reported by Daniel Noll on derby-user: http://thread.gmane.org/gmane.comp.apache.db.derby.user/9107
> To reproduce:
>   1. Create a database with Derby 10.2.2.0
>   2. Create a table with a clob column and insert some data
>   3. Access that database with client+server at version 10.4.1.3 and iterate through the rows in the table
> You'll see an error message like this:
> ERROR 42Y03: 'SYSIBM.CLOBRELEASELOCATOR' is not recognized as a function or procedure.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Re: [jira] Updated: (DERBY-3658) LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2

Posted by Kathey Marsden <km...@sbcglobal.net>.
Knut Anders Hatlen (JIRA) wrote:
>  
> Merged to 10.3 with revision 652917.
>
>   
Thanks Knut!



[jira] Updated: (DERBY-3658) LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2

Posted by "Knut Anders Hatlen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-3658?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Knut Anders Hatlen updated DERBY-3658:
--------------------------------------

    Fix Version/s: 10.5.0.0
                   10.4.1.4
                   10.3.2.2

Merged to 10.4 with revision 652914.
Merged to 10.3 with revision 652917.

> LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2
> -----------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-3658
>                 URL: https://issues.apache.org/jira/browse/DERBY-3658
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC, Network Client
>    Affects Versions: 10.3.2.2, 10.4.1.3
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>            Priority: Minor
>             Fix For: 10.3.2.2, 10.4.1.4, 10.5.0.0
>
>         Attachments: d3658.diff
>
>
> Reported by Daniel Noll on derby-user: http://thread.gmane.org/gmane.comp.apache.db.derby.user/9107
> To reproduce:
>   1. Create a database with Derby 10.2.2.0
>   2. Create a table with a clob column and insert some data
>   3. Access that database with client+server at version 10.4.1.3 and iterate through the rows in the table
> You'll see an error message like this:
> ERROR 42Y03: 'SYSIBM.CLOBRELEASELOCATOR' is not recognized as a function or procedure.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (DERBY-3658) LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2

Posted by "Knut Anders Hatlen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-3658?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Knut Anders Hatlen resolved DERBY-3658.
---------------------------------------

    Resolution: Fixed

I updated the comments in Connection.serverSupportsLocators() and Cursor.locator() so that they say explicitly that a server that supports locators may send LOB values instead of locators if the database is soft upgraded. Committed (to trunk only) revision 652929.

> LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2
> -----------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-3658
>                 URL: https://issues.apache.org/jira/browse/DERBY-3658
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC, Network Client
>    Affects Versions: 10.3.2.2, 10.4.1.3
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>            Priority: Minor
>             Fix For: 10.3.2.2, 10.4.1.4, 10.5.0.0
>
>         Attachments: d3658.diff
>
>
> Reported by Daniel Noll on derby-user: http://thread.gmane.org/gmane.comp.apache.db.derby.user/9107
> To reproduce:
>   1. Create a database with Derby 10.2.2.0
>   2. Create a table with a clob column and insert some data
>   3. Access that database with client+server at version 10.4.1.3 and iterate through the rows in the table
> You'll see an error message like this:
> ERROR 42Y03: 'SYSIBM.CLOBRELEASELOCATOR' is not recognized as a function or procedure.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (DERBY-3658) LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2

Posted by "Kristian Waagan (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/DERBY-3658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12593786#action_12593786 ] 

Kristian Waagan commented on DERBY-3658:
----------------------------------------

The approach taken seems sound. +1 to commit if the tests pass.

I missed the point when I implemented this, believing if the server supported locators Cursor.locator would return a valid locator.
Does it make sense to explicitly note the possibility of an invalid locator even if the server supports it, for instance in [Net]Cursor.locator?
That said, the possibility of getting INVALID_LOCATOR should of course have made me check the value...

> LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2
> -----------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-3658
>                 URL: https://issues.apache.org/jira/browse/DERBY-3658
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC, Network Client
>    Affects Versions: 10.4.1.3
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>            Priority: Minor
>         Attachments: d3658.diff
>
>
> Reported by Daniel Noll on derby-user: http://thread.gmane.org/gmane.comp.apache.db.derby.user/9107
> To reproduce:
>   1. Create a database with Derby 10.2.2.0
>   2. Create a table with a clob column and insert some data
>   3. Access that database with client+server at version 10.4.1.3 and iterate through the rows in the table
> You'll see an error message like this:
> ERROR 42Y03: 'SYSIBM.CLOBRELEASELOCATOR' is not recognized as a function or procedure.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (DERBY-3658) LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2

Posted by "Knut Anders Hatlen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-3658?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Knut Anders Hatlen reassigned DERBY-3658:
-----------------------------------------

    Assignee: Knut Anders Hatlen

> LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2
> -----------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-3658
>                 URL: https://issues.apache.org/jira/browse/DERBY-3658
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC, Network Client
>    Affects Versions: 10.4.1.3
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>            Priority: Minor
>         Attachments: d3658.diff
>
>
> Reported by Daniel Noll on derby-user: http://thread.gmane.org/gmane.comp.apache.db.derby.user/9107
> To reproduce:
>   1. Create a database with Derby 10.2.2.0
>   2. Create a table with a clob column and insert some data
>   3. Access that database with client+server at version 10.4.1.3 and iterate through the rows in the table
> You'll see an error message like this:
> ERROR 42Y03: 'SYSIBM.CLOBRELEASELOCATOR' is not recognized as a function or procedure.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (DERBY-3658) LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2

Posted by "Knut Anders Hatlen (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/DERBY-3658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12593842#action_12593842 ] 

Knut Anders Hatlen commented on DERBY-3658:
-------------------------------------------

Thanks for looking at the patch, Kristian. The tests passed, so I committed the patch to trunk with revision 652865. I also plan to back-port it to the 10.4 branch. I'll also see if I can clarify the comments for [Net]Cursor.locator().

> LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2
> -----------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-3658
>                 URL: https://issues.apache.org/jira/browse/DERBY-3658
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC, Network Client
>    Affects Versions: 10.4.1.3
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>            Priority: Minor
>         Attachments: d3658.diff
>
>
> Reported by Daniel Noll on derby-user: http://thread.gmane.org/gmane.comp.apache.db.derby.user/9107
> To reproduce:
>   1. Create a database with Derby 10.2.2.0
>   2. Create a table with a clob column and insert some data
>   3. Access that database with client+server at version 10.4.1.3 and iterate through the rows in the table
> You'll see an error message like this:
> ERROR 42Y03: 'SYSIBM.CLOBRELEASELOCATOR' is not recognized as a function or procedure.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (DERBY-3658) LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2

Posted by "Kathey Marsden (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/DERBY-3658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12593886#action_12593886 ] 

Kathey Marsden commented on DERBY-3658:
---------------------------------------

I will go ahead and merge to 10.3 and run some tests so we make the 5pm cutoff for the release.


> LOBStateTracker should not use SYSIBM.CLOBRELEASELOCATOR when the database is soft-upgraded from 10.2
> -----------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-3658
>                 URL: https://issues.apache.org/jira/browse/DERBY-3658
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC, Network Client
>    Affects Versions: 10.4.1.3
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>            Priority: Minor
>         Attachments: d3658.diff
>
>
> Reported by Daniel Noll on derby-user: http://thread.gmane.org/gmane.comp.apache.db.derby.user/9107
> To reproduce:
>   1. Create a database with Derby 10.2.2.0
>   2. Create a table with a clob column and insert some data
>   3. Access that database with client+server at version 10.4.1.3 and iterate through the rows in the table
> You'll see an error message like this:
> ERROR 42Y03: 'SYSIBM.CLOBRELEASELOCATOR' is not recognized as a function or procedure.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.