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

Mamta A. Satoor updated DERBY-3037:
-----------------------------------

    Attachment: Derby_3037_AlterTableConstantActionChanges_v1_stat.txt
                Derby_3037_AlterTableConstantActionChanges_v1_diff.txt

With this patch(Derby_3037_AlterTableConstantActionChanges_v1_diff.txt), I am 
removing the Language Resultset.finish from AlterTableConstantAction. In 
addition, like Dan mentioned, what's being created in this part of 
AlterTableConstantAction is a single use activation which should be closed when 
its language Resultset is closed. In order to achieve that, I have added 
following code in NoRowsResultSetImpl.close to take care of the activation
+               if (activation.isSingleExecution())
+                       activation.close();

The derbyall and junit tests have run with no problems. I will go ahead and 
check this patch by tomorrow. Any feedback?

Next task can be to move close of single use activation from 
BasicNoPutResultSet.finishAndRTS(line 607) into NoPutResultSetImpl.close. In 
other words, if Language Resultset associated with single use activation is 
closed, we should close the activation too. Would like to know if anyone has 
any feedback on this.


> Language ResultSet.finish() is called even when the ResultSet is going to be 
> re-used.
> -------------------------------------------------------------------------------------
>
>                 Key: DERBY-3037
>                 URL: https://issues.apache.org/jira/browse/DERBY-3037
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.4.0.0
>            Reporter: Daniel John Debrunner
>            Assignee: Mamta A. Satoor
>             Fix For: 10.3.2.2, 10.4.0.0
>
>         Attachments: Derby_3037_AlterTableConstantActionChanges_v1_diff.txt, 
> Derby_3037_AlterTableConstantActionChanges_v1_stat.txt
>
>
> DERBY-827 (correctly) changed the lifetime of the language ResultSet tree to 
> be the lifetime of the activation, but did not fix up the correct calls to 
> ResultSet.close() and ResultSet.finish().
> A language ResultSet's lifetime should be driven by the activation, so 
> activation.close() should call finish() on its ResultSet.
> EmbedResultSet should call close on its language ResultSet (theResults field) 
> when the JDBC ResultSet is closed, it should not be calling finish() on its 
> ResultSet.
> See comments in DERBY-827 for some more details and issues.

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