Re: cataloguing NOT NULL constraints

From: Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com>
To: Peter Eisentraut <peter_e(at)gmx(dot)net>
Cc: Alvaro Herrera <alvherre(at)commandprompt(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: cataloguing NOT NULL constraints
Date: 2011-08-06 07:04:50
Message-ID: CAEZATCWhTAsA7RG4BESqFXuLhmRUUEvpC0tr_qv0Eok81Xa3qQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 4 August 2011 18:57, Peter Eisentraut <peter_e(at)gmx(dot)net> wrote:
> Have you considered just cataloging NOT NULL constraints as CHECK
> constraints and teaching the reverse parser to convert "x CHECK (x IS
> NOT NULL)" to "x NOT NULL".  It seems to me that we're adding a whole
> lot of hoopla here that is essentially identical to the existing CHECK
> constraint support (it must be, per SQL standard), for no additional
> functionality.
>

With this approach, if the user explicitly wrote "CHECK (x IS NOT
NULL)" would it end up setting attnotnull? Presumably, since the
pg_constraint entry would be indistinguishable, it would be difficult
to do otherwise. From a performance standpoint that might be a good
thing, but it's going to be bad for compatibility.

What if they wrote "CHECK (NOT x IS NULL)", or "CHECK (x IS DISTINCT
FROM NULL)"? How many variants would it reverse parse?

What would this do to error messages when the constraint is violated?

I'm not convinced this simplifies things much; it just moves the
complexity elsewhere, and at the cost of losing compatibility with the
current behaviour.

Regards,
Dean

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Dean Rasheed 2011-08-06 07:17:58 Re: cataloguing NOT NULL constraints
Previous Message Kohei KaiGai 2011-08-06 04:33:07 Re: [v9.1] sepgsql - userspace access vector cache