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.
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 |