[ 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

Reply via email to