Re: Feature request - function-based deferrable uniques.

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Dmitry Fefelov <fozzy(at)ac-sw(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Feature request - function-based deferrable uniques.
Date: 2010-04-01 14:09:56
Message-ID: 20100401140956.GB3014@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Dmitry Fefelov wrote:

> So, deferrable uniques now can be based on column/columns list only. It will
> be very useful if there will be possibility to specify functions in this list.
> Is it possible?

Sure -- use CREATE UNIQUE INDEX.

alvherre=# create function singleton(int) returns int immutable language sql as $$ select 1 $$;
CREATE FUNCTION
alvherre=# create table singleton (a int);
CREATE TABLE
alvherre=# create unique index only_one on singleton (singleton(a));
CREATE INDEX
alvherre=# insert into singleton values (3);
INSERT 0 1
alvherre=# insert into singleton values (6);
ERROR: llave duplicada viola restricción de unicidad «only_one»

The reason it's not supported in table_constraint, IIUC, is that the
standard doesn't allow it, and that syntax is standards-mandated.
CREATE INDEX, however, is not.

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Ross J. Reedstrom 2010-04-01 14:39:04 Re: Alias to rollback keyword
Previous Message Tom Lane 2010-04-01 14:08:49 Re: [HACKERS] Streaming replication document improvements