Not a bug.

Unique(v1,v2) implies unique(v2,v1) which makes the second definition superflous

(1,2) is distinct from (2,1) (because tuples are ordered), no violation of 
unique.

If you want to exclude equivalent sets, your check needs to be v1 < v2.

-----Ursprüngliche Nachricht-----
Von: sqlite-users [mailto:sqlite-users-boun...@mailinglists.sqlite.org] Im 
Auftrag von Domingo Alvarez Duarte
Gesendet: Dienstag, 23. Jänner 2018 17:36
An: SQLite mailing list <sqlite-users@mailinglists.sqlite.org>
Betreff: [EXTERNAL] [sqlite] Bug in unique index

Hello !

Maybe I found a bug in sqlite3 unique index, see example bellow:

====bug-unique.sql

drop table if exists test;
create table test(
     id integer primary key,
     v1 integer not null,
     v2 integer not null constraint not_equal check(v1 != v2),
     unique(v1, v2),
     unique(v2, v1)
);

insert into test values(1, 1, 2);
insert into test values(2, 2, 1);
select * from test;

====

sqlite3 < bug-unique.sql

====output

1|1|2
2|2|1
====

I was expecting to have an error trying to insert the second row but
sqlite3 accepted the duplicated index without error.

Cheers !


_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


___________________________________________
 Gunter Hick | Software Engineer | Scientific Games International GmbH | 
Klitschgasse 2-4, A-1130 Vienna | FN 157284 a, HG Wien, DVR: 0430013 | (O) +43 
1 80100 - 0

May be privileged. May be confidential. Please delete if not the addressee.
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to