Re: insensitive collations - Mailing list pgsql-hackers

From Daniel Verite
Subject Re: insensitive collations
Date
Msg-id 5c7f51b0-6788-4ffd-b9c4-23b710373140@manitou-mail.org
Whole thread Raw
In response to Re: insensitive collations  (Peter Eisentraut <peter.eisentraut@2ndquadrant.com>)
Responses Re: insensitive collations  (Peter Eisentraut <peter.eisentraut@2ndquadrant.com>)
List pgsql-hackers
    Peter Eisentraut wrote:

> Here is an updated patch.

On a table with pre-existing contents, the creation of a unique index
does not seem to detect the duplicates that are equal per the
collation and different binary-wise.

postgres=# \d test3ci
        Table "public.test3ci"
 Column | Type |    Collation      | Nullable | Default
--------+------+------------------+----------+---------
 x    | text | case_insensitive |         |

postgres=# select * from test3ci;
  x
-----
 abc
 ABC
 def
 ghi
(4 rows)

postgres=# create unique index idx on test3ci(x);  -- EXPECTED TO FAIL
CREATE INDEX

postgres=# \d test3ci
        Table "public.test3ci"
 Column | Type |    Collation      | Nullable | Default
--------+------+------------------+----------+---------
 x    | text | case_insensitive |         |
Indexes:
    "idx" UNIQUE, btree (x)

postgres=# select count(*) from test3ci where x='abc';
 count
-------
     2
(1 row)

OTOH with an already existing unique index, attempts to insert
such duplicates are rejected as expected.


Best regards,
--
Daniel Vérité
PostgreSQL-powered mailer: http://www.manitou-mail.org
Twitter: @DanielVerite


pgsql-hackers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: Remove all "INTERFACE ROUTINES" style comments
Next
From: Pavel Stehule
Date:
Subject: Re: PostgreSQL vs SQL/XML Standards