[
https://issues.apache.org/jira/browse/DERBY-6576?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14008891#comment-14008891
]
Dag H. Wanvik edited comment on DERBY-6576 at 5/26/14 6:38 PM:
---------------------------------------------------------------
Attaching [^derby-6576-cascade-setnull.diff], which adds logic to handle the
case of cascading delete and set null referential actions when the referenced
key is deferred. The run-time check is only done for deferrable referenced
keys, so old code paths should not be impacted modulo a simple boolean check or
two.
For both these cases, we save all the keys that were deleted from the primary
table and after deletion but before the cascading action, we check if there are
still any duplicates left. If so, no cascading action is taken.
Test cases added. An earlier version of this patch passed regressions, so
please review.
was (Author: dagw):
Attacking [^derby-6576-cascade-setnull.diff], which adds logic to handle the
case of cascading delete and set null referential actions when the referenced
key is deferred. The run-time check is only done for deferrable referenced
keys, so old code paths should not be impacted modulo a simple boolean check or
two.
For both these cases, we save all the keys that were deleted from the primary
table and after deletion but before the cascading action, we check if there are
still any duplicates left. If so, no cascading action is taken.
Test cases added. An earlier version of this patch passed regressions, so
please review.
> A immediate Fk constraint blows up iff its referenced PK is deferred and we
> modify a duplicate key column
> ---------------------------------------------------------------------------------------------------------
>
> Key: DERBY-6576
> URL: https://issues.apache.org/jira/browse/DERBY-6576
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Reporter: Dag H. Wanvik
> Assignee: Dag H. Wanvik
> Attachments: derby-6576-2.diff, derby-6576-3.diff,
> derby-6576-3.status, derby-6576-cascade-setnull.diff,
> derby-6576-cascade-setnull.status, derby-6576.diff, derby-6576.status
>
>
> Similar to the issue in DERBY-6559, except here we modify the key in the
> referenced table. This leads Derby to check for any referencing FK and throw,
> even if there are other (formerly) duplicate rows that satisfy the FK
> constraint.
--
This message was sent by Atlassian JIRA
(v6.2#6252)