Re: BUG #14739: Wrong message when unique contraint fail

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: fbd(at)datasapiens(dot)com
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #14739: Wrong message when unique contraint fail
Date: 2017-07-10 16:25:01
Message-ID: 2054.1499703901@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

fbd(at)datasapiens(dot)com writes:
> I am testing PG on this query :
> CREATE TABLE T_UNIK (ID INT UNIQUE);
> INSERT INTO T_UNIK VALUES (1), (2), (3), (4), (5);
> UPDATE T_UNIK SET ID = ID + 1;

> I know that PG is unable to do this set based operation properly because it
> does it row by row (which is a nonsense since it works on many RDBMS)

The solution for that is documented: declare the unique constraint as
deferrable.

regression=# CREATE TABLE T_UNIK (ID INT UNIQUE deferrable );
CREATE TABLE
regression=# INSERT INTO T_UNIK VALUES (1), (2), (3), (4), (5);
INSERT 0 5
regression=# UPDATE T_UNIK SET ID = ID + 1;
UPDATE 5

> But the error message is strongly stupid :
> ERROR: invalid byte sequence for encoding "UTF8": 0xe9 0x71 0x75

I don't get that here. It looks like you must be typing some non-ASCII
characters and not everything is on the same page about what encoding
they are in.

regards, tom lane

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Devrim Gündüz 2017-07-10 16:51:51 Re: postgresql 96 for Centos 7 download not found
Previous Message David G. Johnston 2017-07-10 16:19:13 Re: BUG #14739: Wrong message when unique contraint fail