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

Mamta A. Satoor commented on DERBY-6269:
----------------------------------------

Just wanted to share that I tried the script on DB2 and got a warning there as 
well.
db2 => create table t(a int not null unique, b int)
DB20000I  The SQL command completed successfully.
db2 => create index t_1 on t( a )
SQL0605W  The index was not created because an index 
"SYSIBM.SQL141006104447770" with a matching definition already exists.
SQLSTATE=01550

> Misleading warning text if you create an index duplicating a constraint.
> ------------------------------------------------------------------------
>
>                 Key: DERBY-6269
>                 URL: https://issues.apache.org/jira/browse/DERBY-6269
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.11.1.1
>            Reporter: Rick Hillegas
>            Assignee: Mamta A. Satoor
>              Labels: derby_triage10_11
>
> If you try to create an index on a column which defines a unique constraint, 
> the index is not created. That's fine. But you get a misleading warning 
> suggesting that the index was created. We should correct the warning text so 
> that it says that an index was not created. We should also consider making 
> this situation an error, not a warning.
> This issue is probably related to DERBY-655 and DERBY-1343.
> Here is a script which shows this problem:
> ij version 10.11
> ij> connect 'jdbc:derby:memory:db;create=true';
> ij> create table t( a int unique, b int );
> 0 rows inserted/updated/deleted
> ij> -- raises a warning suggesting that a new index has been created
> create index t_1 on t( a );
> 0 rows inserted/updated/deleted
> WARNING 01504: The new index is a duplicate of an existing index: 
> SQL130618085719940.
> ij> -- only the heap and the constraint exist
> select isIndex, conglomerateName, conglomerateID from sys.sysconglomerates c, 
> sys.systables t
> where t.tableid = c.tableid and t.tablename = 'T';
> ISIN&|CONGLOMERATENAME                                                        
>                                                         |CONGLOMERATEID       
>                
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> false|45b300a8-013f-5801-226b-000003b53310                                    
>                                                         
> |0ddd00a9-013f-5801-226b-000003b53310
> true |SQL130618085719940                                                      
>                                                         
> |f55fc0a6-013f-5801-226b-000003b53310
> 2 rows selected
> ij> -- fails because a new index wasn't really created
> drop index t_1;
> ERROR 42X65: Index 'T_1' does not exist.
> ij> select isIndex, conglomerateName, conglomerateID from 
> sys.sysconglomerates c, sys.systables t
> where t.tableid = c.tableid and t.tablename = 'T';
> ISIN&|CONGLOMERATENAME                                                        
>                                                         |CONGLOMERATEID       
>                
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> false|45b300a8-013f-5801-226b-000003b53310                                    
>                                                         
> |0ddd00a9-013f-5801-226b-000003b53310
> true |SQL130618085719940                                                      
>                                                         
> |f55fc0a6-013f-5801-226b-000003b53310
> 2 rows selected



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to