Re: named generic constraints [feature request]

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Caleb Cushing <xenoterracide(at)gmail(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: named generic constraints [feature request]
Date: 2009-12-07 07:36:14
Message-ID: 162867790912062336k379ab2bkcf1898276c508f9@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

2009/12/7 Caleb Cushing <xenoterracide(at)gmail(dot)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
>

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Itagaki Takahiro 2009-12-07 07:55:26 Re: New VACUUM FULL
Previous Message Itagaki Takahiro 2009-12-07 07:32:35 Re: bug: json format and auto_explain