Re: named generic constraints [feature request] - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: named generic constraints [feature request]
Date
Msg-id 162867790912062336k379ab2bkcf1898276c508f9@mail.gmail.com
Whole thread Raw
In response to Re: named generic constraints [feature request]  (Caleb Cushing <xenoterracide@gmail.com>)
List pgsql-hackers
2009/12/7 Caleb Cushing <xenoterracide@gmail.com>:
>> no -
>>
>> "--" is line comment in SQL - it same like "//" in C++
>
> sorry didn't see this was updated. I know -- is a comment
>
> I mean in sql <> means NOT your function name is emptystr which
> implies it looks for an emptystr and returns true if the string is
> found to be empty (at least in my mind). so if you want to create a
> contrstraint of not empty you'd write NOT emptystr(col) however the
> way you wrote it would only return true if the string was NOT <> empty
> which is a double negative meaning that it is empty thereby rejecting
> all but empty strings.
>
> my final function that I wrote ended up looking like this (note: I
> didn't specify to include whitespace in my original explanation.
>
>
>
>
> CREATE OR REPLACE FUNCTION empty(TEXT)
> RETURNS bool AS $$
>  SELECT $1 ~ '^[[:space:]]*$';
>     $$ LANGUAGE sql
>        IMMUTABLE;
> COMMENT ON FUNCTION empty(TEXT)
>        IS 'Find empty strings or strings containing only whitespace';
>
> which I'm using like this (note: this is not the full table)
>
>  CREATE TABLE users (
>        user_name       TEXT    NOT NULL
>                                UNIQUE
>                                CHECK ( NOT empty( user_name ))
> );
>
> I still wish I could write,something like
>
> CREATE CONSTRAINT empty CHECK ( VALUE NOT ~ '^[[:space:]]*$';)
>
> CREATE TABLE users (
>        user_name       TEXT    NOT NULL
>                                UNIQUE
>                                CHECK ( NOT empty )
> );
>  CREATE TABLE roles (
>    role_name       TEXT    NOT NULL
>                                UNIQUE
>                                CHECK ( NOT empty)


I understand. But I don't see any significant benefit for this
non-standard feature. You safe a few chars. I thing so it is useless.

Regards
Pavel Stehule


> );
> --
> Caleb Cushing
>
> http://xenoterracide.blogspot.com
>


pgsql-hackers by date:

Previous
From: Itagaki Takahiro
Date:
Subject: Re: bug: json format and auto_explain
Next
From: Itagaki Takahiro
Date:
Subject: Re: New VACUUM FULL