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

Reply via email to