[ 
https://issues.apache.org/jira/browse/DERBY-3330?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12569987#action_12569987
 ] 

Anurag Shekhar commented on DERBY-3330:
---------------------------------------

Thanks Mike for pointing out the possibility of having empty page and hence 
need to scan multiple page. 
I will reintroduce the code for the same. I will add code to keep moving left 
(or right) till a row is found or no more leaf is available. 

Locking of left or right row is attempted only if there is a duplicate is 
found. In that case 
a. The transaction was deleted in same transaction -- So its already locked 
within same transaction
b. Is deleted in some other transaction - It will result in losing the latch 
and a rescan will performed to identify the slot (no lock)

c. Is an valid row - an exception will be thrown and lock will be released 
immediately.


Irrespective of the isolation level only update lock is requested. But the 
actual locking is performed only in case c and that too for a very short time, 
I think it won't have much impact on performance. 

> provide support for unique constraint over nullable columns
> -----------------------------------------------------------
>
>                 Key: DERBY-3330
>                 URL: https://issues.apache.org/jira/browse/DERBY-3330
>             Project: Derby
>          Issue Type: New Feature
>          Components: Store
>    Affects Versions: 10.4.0.0
>         Environment: all
>            Reporter: Anurag Shekhar
>            Assignee: Anurag Shekhar
>         Attachments: BTreeController.diff, derby-3330-testcase.diff, 
> derby-3330.diff, derby-3330v2.diff, derby-3330v3.diff, derby-3330v4.diff, 
> derby-3330v5.diff, FunctionalSpec_DERBY-3330-V2.html, 
> FunctionalSpec_DERBY-3330.html, UniqueConstraint_Implementation.html
>
>
> Allow unique constraint over nullable field. Right now derby support unique 
> constraint only over not null columns.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to