[ 
https://issues.apache.org/jira/browse/DERBY-2597?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Knut Anders Hatlen updated DERBY-2597:
--------------------------------------

    Attachment: derby-2597-3.stat
                derby-2597-3.diff

Attaching derby-2597-3 which fixes the failure in 
testUpdateResultSetWithIsolation() when running with the DERBY-827 patch. What 
the patch does, is:

1) Move the static method UpdateResultSet.decodeLockMode() into 
DMLWriteResultSet and make it non-static. This makes it possible to add debug 
code that checks that it is only called when the 
{Update,Delete,Insert}ResultSet has been opened (to prevent calls at ResultSet 
construction time).

2) Move UpdateResultSet's call to decodeLockMode() from the constructor to 
open().

3) Make the NoRowsResultSetImpl class hierarchy maintain an isOpen variable 
that is set to true on open and to false on close. Previously, an isClosed 
variable was used, which was false until the first call to close(), after which 
it would be true forever even after the RS was reopened. This change was 
necessary to be able to assert that the result set had been opened in 
decodeLockMode().

With this patch, I think all result set classes are able to detect isolation 
level changes between executions.

Derbyall and suites.All ran cleanly with the patch (except the tests that 
currently fail in the Tinderbox). The patch is ready for review. Thanks.

> Language result sets should not reuse current isolation level across 
> executions
> -------------------------------------------------------------------------------
>
>                 Key: DERBY-2597
>                 URL: https://issues.apache.org/jira/browse/DERBY-2597
>             Project: Derby
>          Issue Type: Sub-task
>          Components: Performance, SQL
>    Affects Versions: 10.3.0.0
>            Reporter: Knut Anders Hatlen
>         Assigned To: Knut Anders Hatlen
>         Attachments: derby-2597-1.diff, derby-2597-1.stat, derby-2597-2.diff, 
> derby-2597-3.diff, derby-2597-3.stat
>
>
> Some of the language result sets cache the current isolation level in their 
> constructors. To allow reuse of the result sets, they should check the 
> isolation level each time they are opened. Currently, this affects 
> HashScanResultSet, TableScanResultSet, LastIndexKeyResultSet and 
> UpdateResultSet (and their sub-classes).

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

Reply via email to