From: | Caleb Cushing <xenoterracide(at)gmail(dot)com> |
---|---|
To: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: named generic constraints [feature request] |
Date: | 2009-11-23 17:50:19 |
Message-ID: | 81bfc67a0911230950v3a041f70p51ac32b39be21ebb@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Mon, Nov 23, 2009 at 4:17 AM, Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> wrote:
> Hello
>
> do you know domains? It is very similar to your proposal.
>
obviously since I cited it.
> constraint cannot be part of expression.
>
why not? NOT NULL is a contraint, UNIQUE is a contstraint.
> CREATE OR REPLACE FUNCTION emptystr(text)
> RETURNS bool AS $$
> SELECT $1 <> ''; -- it is SQL not C
> $$ LANGUAGE sql;
>
> CREATE TABLE users(
> username TEXT CHECK (NOT emptystr(username)),
> ...
this is probably the 'best' current solution. however, I'd like to be
able to not have to name the column for every constraint. and domains
only seem right if it's something, like a zip code, that has a very
specific set of rules, that is in reality it's own type. where
specifying something like 'empty' feels as generic (and arbitrary?) as
null. empty is not the only example (I'm sure), just the best I can
think of.
> p.s. Is it related to ANSI SQL?
not to my knowledge (can't say that it isn't though, I've never read
the standard).
--
Caleb Cushing
From | Date | Subject | |
---|---|---|---|
Next Message | Andrew Gierth | 2009-11-23 18:16:05 | Re: [HACKERS] Updating column on row update |
Previous Message | Andrew Dunstan | 2009-11-23 17:44:02 | Re: Re: [COMMITTERS] pgsql: Remove -w (--ignore-all-space) option from pg_regress's diff |