db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-789) Usability issue: "Constraints have the same set of columns"
Date Tue, 02 Mar 2010 20:25:27 GMT

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

Knut Anders Hatlen commented on DERBY-789:
------------------------------------------

I gave the patch a quick spin (sorry, haven't looked at the code yet).

I found one discrepancy between the description of the new behaviour and actual behaviour.


ij> create table t1(x int primary key, constraint c unique (x));
0 rows inserted/updated/deleted

The description says that UNIQUE is quietly ignored here, but then I would have expected the
following statement to fail:

ij> alter table t1 drop constraint c;
0 rows inserted/updated/deleted

I do like the actual behaviour better than the described behaviour, though. :)
It may look like we are automatically using multiple logical indexes on top of one physical
index here, as mentioned by Dan in DERBY-3300.

(And, as you also indicated yourself might be the case, I found that ALTER TABLE ... ADD CONSTRAINT
UNIQUE was not affected by the patch and still fails if there's a primary key on the same
set of columns. We should probably try to be consistent and allow it in ALTER TABLE too if
we allow it in CREATE TABLE.)

> Usability issue: "Constraints have the  same  set of columns"
> -------------------------------------------------------------
>
>                 Key: DERBY-789
>                 URL: https://issues.apache.org/jira/browse/DERBY-789
>             Project: Derby
>          Issue Type: Improvement
>          Components: SQL
>            Reporter: Øystein Grøvlen
>            Assignee: Bryan Pendleton
>            Priority: Minor
>         Attachments: PrimaryImpliesUnique.diff
>
>
> Legolas Woodland reported on derby-user that derby return errors like :
> org.apache.derby.client.am.SqlException:                    Constraints
> 'SQL060103004635123'  and 'SQL060103004635121'  have the  same  set of
> columns, which is not allowed.
> He got this when creating a table like this:
> create  table  WEBSITES (USERID  integer  not  null unique,  WEBSITEID
> bigint  not  null unique,  DOMAINNAME  varchar(255)  not null  unique,
> DESCRIPTION  varchar(255),  PPVIEW   double,  PPCLICK  double,  PPWEEK
> double, totalClick bigint,  totalView bigint, active smallint, primary
> key (WEBSITEID));
> Omitting the unique specifier made things work. 
> I think this is a usability issue.   At least, one should not present names to the user,
that has been generated internally.  Instead, it would be helpful if the names of the columns
involved was mentioned. I see two ways to solve this:
> 1. Return error that says that  duplicate contraints on the following columns are not
allowed.
> 2. Allow this and use same index for both constraints.  (I guess dropping constraints
will be more complicated in this case since one will have to check if other constraints are
using the same index.)

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


Mime
View raw message