Mamta Satoor wrote:
> Based on the discussion we have had on this bug, I will submit a patch which
> will return
> true for DatabaseMetaData.supportsOpenCursorsAcrossCommit.
>
> thanks,
> Mamta
>
> Shreyas Kaushik wrote:
>
> > Can someone please update what is happening on this issue?
> >
> > thanks
> > Shreyas
> >
> > Shreyas Kaushik (JIRA) wrote:
> > > [
> > > http://nagoya.apache.org/jira/browse/DERBY-66?page=comments#action_57008 ]
> > >
> > > Shreyas Kaushik commented on DERBY-66:
> > > --------------------------------------
> > >
> > > I think it's the other way around. As the JDBC api says "Retrieves
> > > whether this database supports keeping cursors open across commits" it is
> > > the property of the database.
> > >
> > > Since Derby can have cursors that are open across commits it should
> > > return true.
> > >
> > > To be even precise, when creating a ResultSet handle that needs to have
> > > cursors open across commits, a check on whether the underlying Database
> > > supports such a holdability has to be checked.
> > >
> > >
> > >>Derby supports open cursor across commits and hence
> > >>DatabaseMetaData.supportsOpenCursorsAcrossCommit return true.
> > >>-----------------------------------------------------------------------------------------------------------------
> > >>
> > >> Key: DERBY-66
> > >> URL: http://nagoya.apache.org/jira/browse/DERBY-66
> > >> Project: Derby
> > >> Type: Bug
> > >> Components: JDBC
> > >> Versions: 10.0.2.0
> > >> Reporter: Mamta A. Satoor
> > >> Priority: Minor
> > >
> > >
> > >>Derby returns false for DatabaseMetaData.supportsOpenCursorsAcrossCommit.
> > >>But that seems incorrect because Derby does support open cursor across
> > >>commits and hence DatabaseMetaData.supportsOpenCursorsAcrossCommit return
> > >>true.
> > >
> > >
Here is a simple patch for the bug. Please review, comment/vote on it.
thanks,
Mamta
Index: java/engine/org/apache/derby/impl/jdbc/EmbedDatabaseMetaData.java
===================================================================
--- java/engine/org/apache/derby/impl/jdbc/EmbedDatabaseMetaData.java
(revision 124908)
+++ java/engine/org/apache/derby/impl/jdbc/EmbedDatabaseMetaData.java
(working copy)
@@ -1045,8 +1045,9 @@
*
* @return true if cursors always remain open; false if they might not
remain open
*/
+ //returns true because Derby can have cursors that are open across
commits.
public boolean supportsOpenCursorsAcrossCommit() {
- return false;
+ return true;
}
/**
Index:
java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/metadata.out
===================================================================
---
java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/metadata.out
(revision 124908)
+++
java/testing/org/apache/derbyTesting/functionTests/master/DerbyNet/metadata.out
(working copy)
@@ -119,7 +119,7 @@
supportsCorrelatedSubqueries(): true
supportsUnion(): true
supportsUnionAll(): true
-supportsOpenCursorsAcrossCommit(): false
+supportsOpenCursorsAcrossCommit(): true
supportsOpenCursorsAcrossRollback(): false
supportsOpenStatementsAcrossCommit(): true
supportsOpenStatementsAcrossRollback(): false
Index: java/testing/org/apache/derbyTesting/functionTests/master/metadata.out
===================================================================
--- java/testing/org/apache/derbyTesting/functionTests/master/metadata.out
(revision 124908)
+++ java/testing/org/apache/derbyTesting/functionTests/master/metadata.out
(working copy)
@@ -119,7 +119,7 @@
supportsCorrelatedSubqueries(): true
supportsUnion(): true
supportsUnionAll(): true
-supportsOpenCursorsAcrossCommit(): false
+supportsOpenCursorsAcrossCommit(): true
supportsOpenCursorsAcrossRollback(): false
supportsOpenStatementsAcrossCommit(): true
supportsOpenStatementsAcrossRollback(): false