Hello Derby users,

I detected a strange behaviour, where indices created by uniques
constraints are not reported in DatabaseMedata.getIndexInfo() :

 *getIndexInfo*(String  
<http://docs.oracle.com/javase/6/docs/api/java/lang/String.html>  catalog,
              String  
<http://docs.oracle.com/javase/6/docs/api/java/lang/String.html>  schema,
              String  
<http://docs.oracle.com/javase/6/docs/api/java/lang/String.html>  table,
              boolean unique,
              boolean approximate)


I tested this with the simple table and two indices (one
auto-generated, and one user index) :
  create table APP.T1 ( f1 integer unique, f2 integer )
  create index index_on_f2 on t1(f2)

if called with unique=true, no index is returned.
If called with unique = false, two indices are returned :
  Index : INDEX_ON_F2  NON_UNIQUE=true
  Index : SQL121222192458030  NON_UNIQUE=true
both with column NON_UNIQUE=true, which surprises me.
Is that expected ?
Problem occurs for unnamed and named constraints.
However IIRC I saw also some indices returned by
getIndexInfo(unique = true ) on much complex database,
thus this behaviour does not seem to be always reproductible.

I use Derby client 10.8.2.2 (also 10.6.2.1), open jdk 1.7 and
oracle jdk on 32 and 64bits linux machines.
I have searched into derby bug database, but could not find
any open bug on this topic (3346 is closed).

  M. Maison

Reply via email to