[ 
https://issues.apache.org/jira/browse/DERBY-2462?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12481780
 ] 

Dag H. Wanvik commented on DERBY-2462:
--------------------------------------

The spilling of the hash table to disk was added in DERBY-106 in svn
157861. I checked the issue comments, the code changes and the tests,
but I did not find a clue to why false is passed (for keepAfterCommit) to super 
from
BackingStoreHashTableFromScan.  

I see the test for insensitive result sets (which also relies on
spilling the hash table to disk) uses holdability=true, but the test
for join and distinct only tests the non-holdable case.

So it would seem holdability is not meant to work (or was postponed?)
for the join and distinct cases. Does anyone know the status of this? (The
contributor is not active in the community any longer).


> org.apache.derby.impl.store.access.BackingStoreHashTableFromScan does not 
> honor ResultSet holdability
> -----------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-2462
>                 URL: https://issues.apache.org/jira/browse/DERBY-2462
>             Project: Derby
>          Issue Type: Bug
>          Components: Store
>    Affects Versions: 10.2.2.0
>         Environment: Test under Windows Vista, Java 1.4.2_13
>            Reporter: Jeff Clary
>         Attachments: DerbyHoldabilityTest.java
>
>
> After an unrelated statement on the same connection commits, and after some 
> number of successful calls to ResultSet.next(), a subsequent call to 
> ResultSet.next() throws an SQLException with a message like: The heap 
> container with container id Container(-1, 1173965368428) is closed.  This 
> seems to be related to the hard-coded passing of false to the super in the 
> constructor of 
> org.apache.derby.impl.store.access.BackingStoreHashTableFromScan.
> Steps to reproduce:
> 1. Execute a statement on a connection that returns a result set.
> 2. Execute a second statement on the same connection that modifies the 
> database and commits.
> 3. Call next() on the first result set until the exception is thrown.
> Note that the number of rows that can be successfully retrieved from the 
> result set seems to be related to the amount of data per row.  Increasing the 
> number of columns in the result set or the length of the columns causes the 
> exception to be taken sooner.
> The attached test program demonstrates the issue.

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