Return-Path: Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: (qmail 3675 invoked from network); 31 Oct 2007 01:45:13 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 31 Oct 2007 01:45:13 -0000 Received: (qmail 8035 invoked by uid 500); 31 Oct 2007 01:45:01 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 7819 invoked by uid 500); 31 Oct 2007 01:45:00 -0000 Mailing-List: contact derby-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: Delivered-To: mailing list derby-dev@db.apache.org Received: (qmail 7810 invoked by uid 99); 31 Oct 2007 01:45:00 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 30 Oct 2007 18:45:00 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 31 Oct 2007 01:45:11 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 36B30714233 for ; Tue, 30 Oct 2007 18:44:51 -0700 (PDT) Message-ID: <25578621.1193795091221.JavaMail.jira@brutus> Date: Tue, 30 Oct 2007 18:44:51 -0700 (PDT) From: "Anurag Shekhar (JIRA)" To: derby-dev@db.apache.org Subject: [jira] Updated: (DERBY-2212) Add "Unique where not null" to create index In-Reply-To: <20254731.1167917367874.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/DERBY-2212?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Anurag Shekhar updated DERBY-2212: ---------------------------------- Attachment: FunctionlaSpecv2.html In this version of functional spec I have removed all implementation details and have added new sections relation upgrades and test cases. I have added few more examples and have tried to explain them but the list of scenario is still doesn't covers all possible combinations of 3 part keys. I felt there will be too many combinations to list and the description of the functionality will able to explain what will be the behavior in each case. > Add "Unique where not null" to create index > ------------------------------------------- > > Key: DERBY-2212 > URL: https://issues.apache.org/jira/browse/DERBY-2212 > Project: Derby > Issue Type: Improvement > Components: SQL > Affects Versions: 10.2.1.6 > Reporter: Oleksandr Alesinskyy > Assignee: Anurag Shekhar > Attachments: derby-2212preview.diff, derby-2212preview2.diff, FunctionalSpec.html, FunctionlaSpecv2.html > > > Derby prohibits creation of unique constraints on nullable colums (as well if only some columns in the constraint list are nullable) and treat nulls in unique indexes as normal values (i.e. only one row with null values in indexed columns may be inserted into the table). This bahavior is very restrictive, does not completely comply with SQL standards (both letter and intent) as well as with business needs and intending meaning of NULL values (2 null values are not considered as equal, this comparision shall return NULL, and for selection criteria boolean null is treated as FALSE). > This behavior, as far as I can see, is modelled after DB2 (and differs from behavior of most other major databases, like SyBase, Oracle, etc.). > But even DB2 provide some means to alleviate these restrictions, namely "UNIQUE WHERE NOT NULL" clause for CREATE INDEX statement. > It will be very good if such "UNIQUE WHERE NOT NULL" clause will be introduced in Derby. > Regards, > Oleksandr Alesinskyy -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.