positioned updates and deletes allowed after a commit without repositioning the 
cursor - if the table is indexed on the columns selected
----------------------------------------------------------------------------------------------------------------------------------------

         Key: DERBY-1361
         URL: http://issues.apache.org/jira/browse/DERBY-1361
     Project: Derby
        Type: Bug

  Components: JDBC  
    Versions: 10.2.0.0    
 Environment: Java 1.4
    Reporter: Andreas Korneliussen


After a commit, the cursor should be positioned before the next row (not on a 
row). However in Derby 10.2, I now see the following behavior if the table has 
an index on the selected columns:

ij> create table t (id int primary key);
ij> commit;
ij> insert into t values 1,2,3,4,5,6,7,8,9;

9 rows inserted/updated/deleted
ij> commit;
ij> get cursor c1 as 'select * from t for update';
ij> next c1;
ID         
-----------
1          
ij> commit;
ij> update t set id=id+1000 where current of c1;
1 row inserted/updated/deleted
ij> commit;
ij> update t set id=id+1000 where current of c1;
1 row inserted/updated/deleted
ij> 

The expected behavior is  that the UPDATE .. WHERE CURRENT OF fails with:
ERROR 24000: Invalid cursor state - no current row.

The problem applies to both scrollable and forward-only updatable cursors.

Note: If the table is created *without* the index, I do see the expected 
behavior.
I am marking this as a regression, since this issue is not reproducible on 
older, released versions of derby (I have tested with 10.1.2.1).


-- 
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