[ https://issues.apache.org/jira/browse/DERBY-3330?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Anurag Shekhar updated DERBY-3330: ---------------------------------- Attachment: derby-3330.diff I am running the tests and will be updating the patch based on the test results. Description of patch modified files java/engine/org/apache/derby/impl/sql/compile/CreateIndexNode.java java/engine/org/apache/derby/impl/sql/compile/TableElementList.java java/engine/org/apache/derby/impl/sql/execute/GenericConstantActionFactory.java Added new methods to support almost unique index for unique constraint java/engine/org/apache/derby/impl/sql/execute/CreateIndexConstantAction.java Added new CreateIndexConstantAction method to support a new parameter (almost unique) for indexes. This property is stored and used while executing this action. execute method of this class uses this property to use AlmostUniqueIndexSortObserver and AlmostUniqueMergeSort. This two classes provide special sorting routine which considers two row as duplicate only if all the key parts are non null. java/engine/org/apache/derby/impl/store/access/sort/MergeSort.java changed the scope of few attributes to protected so that AlmostUniqueMergeSort can access them. java/engine/org/apache/derby/impl/store/access/sort/ExternalSortFactory.java removed final to allow AlmostUniqueExternalSortFactory to extend from it. moved creation of MergeSort to a protected method so that extending class can return a different class. java/engine/org/apache/derby/impl/store/access/btree/BTree.java added a new property almostUnique and getter and setters for the same. java/engine/org/apache/derby/impl/store/access/btree/BTreeController.java added a new private method to compare the record with immediate left and right records to check for duplicate. java/engine/org/apache/derby/impl/store/access/btree/index/B2I.java added code to store and retrieve new attribute "almostUnique" to the file system. java/engine/org/apache/derby/iapi/store/access/AccessFactoryGlobals.java added property string for AlmostUniqueExternalSortFactory. java/engine/org/apache/derby/modules.properties Added entry for AlmostUniqueExternalSortFactory. New files java/engine/org/apache/derby/impl/sql/execute/AlmostUniqueIndexSortObserver.java This class implements duplicate checking routine to reject non null duplicate keys. java/engine/org/apache/derby/impl/store/access/sort/AlmostUniqueExternalSortFactory.java This class extends from ExternalSortFactory and overrides getMergeSort methods to return AlmostUniqueMergeSort. java/engine/org/apache/derby/impl/store/access/sort/AlmostUniqueMergeSort.java This class extends MergeSort and overrides compare methods to ignore last keypart (location) while checking for duplicate keys. > 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.diff > > > 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.