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

Reply via email to