[ http://issues.apache.org/jira/browse/DERBY-1036?page=all ] Knut Anders Hatlen resolved DERBY-1036: ---------------------------------------
Fix Version: 10.2.0.0 Resolution: Fixed Dag's patch for DERBY-1183 and this issue committed into trunk with revision 416661. > Embedded and client differ with regard to Statement.setCursor Name. client > will disallow duplicate cursor names. Embedded will allow it. > ----------------------------------------------------------------------------------------------------------------------------------------- > > Key: DERBY-1036 > URL: http://issues.apache.org/jira/browse/DERBY-1036 > Project: Derby > Type: Sub-task > Components: Network Client, JDBC > Versions: 10.1.3.0, 10.1.2.3, 10.2.0.0 > Reporter: Kathey Marsden > Assignee: Dag H. Wanvik > Priority: Minor > Fix For: 10.2.0.0 > > In looking at the checkDataSource test for DERBY-435, I hit an issue that the > test fails with an exception for duplicate cursor name because it sets the > cursor name for two statements to the same thing. > Embedded seems to allow this, but it seems to me that client might be right > here. How could embedded differentiate the two for positioned updates? > There is risk to existing applications if embedded is changed to throw the > error that should be considered if we decide we need to change the embedded > behaviour. > Below are some details from checkDataSource where I hit this. I will change > the names for now as it does not seem relevant to what is being tested. > PreparedStatement psruState = createFloatStatementForStateChecking(cs1, > "select i from ru where i = ?"); > CallableStatement csruState = createFloatCallForStateChecking(cs1, > "CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(?,?)"); > Both of these methods set the cursor name to the same thing: > s.setCursorName("StokeNewington"); > For embedded it succeeds for client it throws the exception. > java.sql.SQLException: Duplicate cursor names are not allowed. > at org.apache.derby.client.am.SqlException.getSQLException(Unknown > Source) > at org.apache.derby.client.am.Statement.setCursorName(Unknown Source) > at > org.apache.derbyTesting.functionTests.tests.jdbcapi.checkDataSource.createFloatStatementForStateChecking(Unknown > Source) > at > org.apache.derbyTesting.functionTests.tests.jdbcapi.checkDataSource.runTest(Unknown > Source) > at > org.apache.derbyTesting.functionTests.tests.jdbcapi.checkDataSource.main(Unknown > Source) -- 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