[ http://issues.apache.org/jira/browse/DERBY-1295?page=all ]
Fernanda Pizzorno updated DERBY-1295:
-------------------------------------
Attachment: derby-1295.diff
derby-1295.stat
The attached file derby-1295.diff adds a check in EmbedResultSet.java so that
only forward only result sets will close due to positioning, and a new test
(jdbcapi/ScrollResultSetTest.junit). I have successfully run derbyall with this
patch. Can someone please review it?
Thank you in advance!
> Result sets of type TYPE_SCROLL_INSENSITIVE should not implicitly close due
> to positioning in autocommit mode
> -------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-1295
> URL: http://issues.apache.org/jira/browse/DERBY-1295
> Project: Derby
> Type: Bug
> Components: JDBC
> Versions: 10.2.0.0
> Reporter: Dag H. Wanvik
> Assignee: Fernanda Pizzorno
> Priority: Minor
> Fix For: 10.2.0.0
> Attachments: Main.java, derby-1295.diff, derby-1295.stat
>
> The new JDBC 4 specification allows implementations to automatically
> close result sets of type FORWARD_ONLY when ResultSet#next returns
> false:
> (quote from JDBC preliminary spec):
> > 16.2.5 Closing a ResultSet Object
> > :
> > NOTE: Some JDBC driver implementations may also implicitly close the
> > ResultSet when the ResultSet type is TYPE_FORWARD_ONLY and the next
> > method of ResultSet returns false.
> This implies that other result set type are not free to do this.
> Currently, Derby will also implicitly close result sets of type
> TYPE_SCROLL_INSENSITIVE, if autocommit is enabled.
> Quote from Derby Developer's Guide, subsection "Using autocommit":
>
> > Using auto-commit
> >
> > A new connection to a Derby database is in auto-commit mode by
> > default, as specified by the JDBC standard. Auto-commit mode means
> > that when a statement is completed, the method commit is called on
> > that statement automatically. Auto-commit in effect makes every SQL
> > statement a transaction. The commit occurs when the statement
> > completes or the next statement is executed, whichever comes
> > first. In the case of a statement returning a ResultSet , the
> > statement completes when the last row of the ResultSet has been
> ****************************************
> > retrieved or the ResultSet has been closed explicitly.
> This seems to indicate that result set always closes when the last row
> has been seen, however, it seems the implementation only does this
> when autocommit is enabled. I will attach a repro.
> Anyway, this should be corrected for JDBC4 compliancy. Scrollable
> result sets should never close implicitly due to positioning,
> autocommit or not.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira