[ https://issues.apache.org/jira/browse/DERBY-3330?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12563119#action_12563119 ]
Anurag Shekhar commented on DERBY-3330: --------------------------------------- thanks Mike for looking at the patch and detailed comments I am explaining few points in this comment and will get back about rest of the comments overall: o almost unique, doesn't seem like a good name for this. And I didn't see good documentation in the code explaining what this means. Unfortunately could not think of something less wordy than AllowMulipleNullsInUnique. Shall I change it to UniqueWhenNotNull ? o not sure what you are using for tab/spaces, see derby web site for following existing conventions in the code. may seem minor but inconsistent tab/indent makes stuff unreadable. Derby code that has tab indentation expects 4 spaces for those tabs. I will check the indentations and fix them. o i have to think about it some more but the places you added the if (compareLeftAndRightSiblings(rowToInsert, insert_slot, targetleaf)) return ConglomerateController.ROWISDUPLICATE; don't seem optimal. I would like to see the code only called in the almost unique case, so we don't affect the behavior of existing indexes at all. I will change it to check for new index before calling compareLeftAndRightSiblings. java/engine/org/apache/derby/impl/store/access/btree/index/B2I.java o it is critical to properly document changes to ondisk format of store objects, doesn't look like any work here done. I know from existing comments that upgrade still does not work so maybe you are planning more here. o The model has been to add new stuff at the end rather than in the middle. I will be fixing it in my new patch. o so far I haven't seen what is going to stop this from being created in soft upgrade. I am adding a new class B2I_10_3 which will be used in case of soft upgrades. I will add comments about disk format. java/engine/org/apache/derby/modules.properties o did you consider just altering the existing sort to take an additional startup parameter rather than extending and creating a new module to sort? just would be interested to know why one approach vs. the other. The sorting will be required while creating the constraint only. For rest of the execution it acts like a non unique index. By adding a new module I felt I won't be touching the execution path of other functionality (like select) and they will retain the their performance. But I can merge this code with exiting sorting routine if you feel that will be better way of handing it. > 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: derby-3330-testcase.diff, derby-3330.diff, > derby-3330v2.diff, derby-3330v3.diff, derby-3330v4.diff, > FunctionalSpec_DERBY-3330-V2.html, FunctionalSpec_DERBY-3330.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.