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

From Caleb Cushing
Subject Re: named generic constraints [feature request]
Date
Msg-id 81bfc67a0912062026u41624a38jbb04cdc4758c7960@mail.gmail.com
Whole thread Raw
In response to Re: named generic constraints [feature request]  (Pavel Stehule <pavel.stehule@gmail.com>)
Responses Re: named generic constraints [feature request]  (Pavel Stehule <pavel.stehule@gmail.com>)
List pgsql-hackers
> 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)
 
);
-- 
Caleb Cushing

http://xenoterracide.blogspot.com


pgsql-hackers by date:

Previous
From: Greg Smith
Date:
Subject: Re: [PATCH] Largeobject Access Controls (r2460)
Next
From: Greg Smith
Date:
Subject: Re: LDAP where DN does not include UID attribute