[
https://issues.apache.org/jira/browse/DERBY-160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12899844#action_12899844
]
Knut Anders Hatlen commented on DERBY-160:
------------------------------------------
JDBC 4 added a new meta-data call to tell how the drivers behave on error:
DatabaseMetaData.autoCommitFailureClosesAllResultSets(). The embedded driver
returns true and the client driver returns false. See DERBY-3422.
> Foreign key constraint failure closes the cursors in embedded mode but not in
> Network Server mode
> -------------------------------------------------------------------------------------------------
>
> Key: DERBY-160
> URL: https://issues.apache.org/jira/browse/DERBY-160
> Project: Derby
> Issue Type: Bug
> Components: Network Server
> Affects Versions: 10.0.2.1
> Reporter: Mamta A. Satoor
>
> When running embedded Derby in autocommit true mode(default), a foreign key
> violation closes the open cursors. But the cursors remain open after the
> foreign key violation when Derby is running in Network Server. Following code
> can be tried in ij for embedded and network server to see the behavior
> difference.
> create table tableWithPrimaryKey (c1 int not null, c2 int not null,
> constraint pk primary key(c1,c2));
> create table tableWithConstraint (c1 int, c2 int, constraint fk foreign
> key(c1,c2) references tableWithPrimaryKey);
> create table t1 (c11 int, c12 int);
> insert into t1 values (1,1), (2,2), (3,3);
> insert into tableWithPrimaryKey values (1, 1), (2, 2), (3, 3), (4, 4);
> insert into tableWithConstraint values (1, 1), (2, 2), (3, 3), (4, 4);
> get cursor c1 as 'select * from t1';
> next c1;
> -- In both embedded and Network server modes, delete below will throw
> exception "ERROR 23503: DELETE on
> -- table 'TABLEWITHPRIMARYKEY' caused a violation of foreign key constraint
> 'FK' for key (1,1).
> -- The statement has been rolled back."
> delete from tableWithPrimaryKey;
> -- In embedded mode, next on cursor below throws exception "ERROR XCL16:
> ResultSet not open, operation 'next' not
> -- permitted. Verify that autocommit is OFF." But in Network Server mode, the
> cursor is still open and
> -- next c1 spits out contents of next row.
> next c1;
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.