Re: uniqueness not always correct
| От | Bruce Momjian |
|---|---|
| Тема | Re: uniqueness not always correct |
| Дата | |
| Msg-id | 200009300216.WAA01739@candle.pha.pa.us обсуждение исходный текст |
| Ответ на | uniqueness not always correct (Frank Cusack <fcusack@iconnet.net>) |
| Список | pgsql-bugs |
I can confirm this is fixed in the current source tree, to be released as 7.1 in a few months: test=> create table test (zone int4, net cidr, unique(zone, net)); NOTICE: CREATE TABLE/UNIQUE will create implicit index 'test_zone_key' for table 'test' CREATE test=> insert into test (zone, net) values (1, '1.2.3/24'); INSERT 19822 1 test=> insert into test (zone, net) values (1, '2.3.4/24'); INSERT 19823 1 test=> insert into test (zone, net) values (1, '1.2.3/24'); ERROR: Cannot insert a duplicate key into unique index test_zone_key ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test=> insert into test (zone, net) values (1, '2.3.4/24'); ERROR: Cannot insert a duplicate key into unique index test_zone_key test=> > Solaris 2.6/sparc; postgres 6.5.1 > > dns=> create table test (zone int4, net cidr, unique(zone, net)); > NOTICE: CREATE TABLE/UNIQUE will create implicit index 'test_zone_key' for table 'test' > CREATE > dns=> insert into test (zone, net) values (1, '1.2.3/24'); > INSERT 21750 1 > dns=> insert into test (zone, net) values (1, '2.3.4/24'); > INSERT 21751 1 > dns=> insert into test (zone, net) values (1, '1.2.3/24'); > INSERT 21752 1 > dns=> insert into test (zone, net) values (1, '2.3.4/24'); > ERROR: Cannot insert a duplicate key into a unique index > dns=> select * from test; > zone|net > - ----+-------- > 1|1.2.3/24 > 1|2.3.4/24 > 1|1.2.3/24 > (3 rows) > > > Once a unique error is reported, uniqueness seems to be maintained. > Also, if you enter 4 values, then try a duplicate, it all works. > > The threshold seems to be 3. > > A select before the duplicate add also seems to fix it. > > ~f > > > > ************ > > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
В списке pgsql-bugs по дате отправления: