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

Daniel John Debrunner commented on DERBY-3330:
----------------------------------------------

Thanks for cleaning up the IndexDescriptor upgrade related code, makes it look 
much cleaner.

A minor issue I have that if needed can be handled after any patch is applied 
is the naming in the code of the new style of unique index.

The common theme is "uniqueWhenNotNull", when I first looked at the code I 
thought this was the other way around since for index definitions I tend to 
think of the DDL, not the row values. Thus:

   isUnique() is true for indexes where the columns are defined NOT NULL

   isUniqueWhenNotNull() is true for indexes where the columns are nullable 
(but unique when the column values do not contain NULLs).

See how that can be confusing to code readers who see the code without having 
been immersed in developing the code.

Not sure of a better name, re-writing to be a positive statement (always 
clearer) but still referring to the values would be:
    isUniqueWithDuplicateNulls()

or a positive statement referring to the column types:
   isUniqueWithNullableColumns()

I think a change in name would be good for the long term readability of the 
code, again it can be a follow on patch, fairly easy to do with IDE refactoring.

One more aside, it would be good to expand the definition of isUnique() and the 
current isUniqueWhenNotNull() in IndexDescriptor to indicate any relationship 
between them, e.g. is isUnique() true if isUniqueWhenNotNull() is true?

> 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, db2Compatibility.diff, 
> derby-3330-testcase.diff, derby-3330.diff, derby-3330v10.diff, 
> derby-3330v11.diff, derby-3330v12.diff, derby-3330v2.diff, derby-3330v3.diff, 
> derby-3330v4.diff, derby-3330v5.diff, derby-3330v6.diff, derby-3330v7.diff, 
> derby-3330v8.diff, derby-3330v9.diff, derbyall_report.txt, 
> FunctionalSpec_DERBY-3330-V2.html, FunctionalSpec_DERBY-3330.html, 
> UniqueConstraint_Implementation.html, 
> UniqueConstraint_Implementation_V2.html, 
> UniqueConstraint_Implementation_V3.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