Re: cataloguing NOT NULL constraints

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: Dean Rasheed <dean(dot)a(dot)rasheed(at)gmail(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: cataloguing NOT NULL constraints
Date: 2011-07-22 21:28:24
Message-ID: CA+TgmobQSR7QHfvH8fQ7dvUabQMBdFc1=Ef7ceJL9qeOm8Y1iw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Jul 22, 2011 at 4:39 PM, Alvaro Herrera
<alvherre(at)commandprompt(dot)com> wrote:
> Excerpts from Robert Haas's message of vie jul 22 12:14:30 -0400 2011:
>> On Thu, Jul 21, 2011 at 7:51 PM, Alvaro Herrera
>> <alvherre(at)commandprompt(dot)com> wrote:
>> >> I think that there probably ought to be a way to display the NOT NULL
>> >> constraint names (perhaps through \d+). For example, if you're
>> >> planning to support NOT VALID on top of this in the future, then there
>> >> needs to be a way to get the constraint's name to validate it.
>> >
>> > Absolutely true.  Another thing that needs to be done here is to let the
>> > ALTER TABLE and ALTER DOMAIN commands use the constraint names; right
>> > now, they simply let you add the constraint but not specify the name.
>> > That should probably be revisited.
>>
>> That, at least, seems like something that should be fixed before commit.
>
> Hmm, which point, Dean's or mine?  Dean was saying that the name should
> be displayed by some flavor of \d;

That might not be 100% necessary for the initial commit, but seems
easy to fix, so why not?

> mine was that we need a command such
> as
>
> ALTER TABLE foo ALTER COLUMN bar SET NOT NULL name_of_notnull_constr
>
> where the last bit is what's new.

Well, if you don't have that, I don't see how you have any chance of
pg_dump working correctly. Though I think it should use the table
constraint syntax:

CONSTRAINT name_of_notnull_constr constraint_definition

I'm not exactly sure what to propose for the constraint_definition.
Perhaps just:

CONSTRAINT name_of_notnull_constr NOT NULL column_name

Though Peter seemed to think it should be:

CONSTRAINT name_of_notnull_constr CHECK (column_name IS NOT NULL)

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Kevin Grittner 2011-07-22 21:51:49 Re: WIP fix proposal for bug #6123
Previous Message Greg Smith 2011-07-22 21:15:37 Re: pgbench --unlogged-tables