[
https://issues.apache.org/jira/browse/DERBY-6665?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rick Hillegas updated DERBY-6665:
---------------------------------
Attachment: derby-6665-01-ad-import-and-unique.diff
Attaching derby-6665-01-ad-import-and-unique.diff. This is the latest
checkpoint of where I am. This patch fixes a spot in the code where we were
passing in a hard-coded null even though the constraintID was handy; this
caused an NPE. This patch also fixes a spot in InsertResultSet where we were
switching on the deferrability information in the index descriptor rather than
on the effective deferrability of the constraint in the current session.
Together, these fixes bring ConstraintCharacteristicsTest down to 1 error and 1
failure. Onward...
> Violation of deferred constraints not detected when conglomerates are shared
> ----------------------------------------------------------------------------
>
> Key: DERBY-6665
> URL: https://issues.apache.org/jira/browse/DERBY-6665
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.11.0.0
> Reporter: Knut Anders Hatlen
> Attachments: braindump.diff,
> derby-6665-01-aa-remove-uniquePKConstraintModes.diff,
> derby-6665-01-ab-useTableUUIDforCheckConstraints.diff,
> derby-6665-01-ac-unpositionedScan.diff,
> derby-6665-01-ad-import-and-unique.diff, junit.diff
>
>
> See the following script:
> {noformat}
> ij version 10.11
> ij> connect 'jdbc:derby:memory:db;create=true';
> ij> create table t1(x int primary key);
> 0 rows inserted/updated/deleted
> ij> create table t2(x int primary key);
> 0 rows inserted/updated/deleted
> ij> create table t3(x int, constraint fk1 foreign key (x) references t1
> initially deferred, constraint fk2 foreign key (x) references t2 initially
> deferred);
> 0 rows inserted/updated/deleted
> ij> insert into t1 values 1;
> 1 row inserted/updated/deleted
> ij> autocommit off;
> ij> insert into t3 values 1;
> 1 row inserted/updated/deleted
> ij> insert into t2 values 1;
> 1 row inserted/updated/deleted
> ij> delete from t1;
> 1 row inserted/updated/deleted
> ij> commit;
> ij> select * from t1;
> X
> -----------
> 0 rows selected
> ij> select * from t2;
> X
> -----------
> 1
> 1 row selected
> ij> select * from t3;
> X
> -----------
> 1
> 1 row selected
> {noformat}
> Since T3.X contains a value (1) that is not present in T1, the foreign key
> FK1 is violated, and the COMMIT statement should have failed.
--
This message was sent by Atlassian JIRA
(v6.2#6252)