ALTER .. ADD PRIMARY KEY

From: Rod Taylor <rbt(at)rbt(dot)ca>
To: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: ALTER .. ADD PRIMARY KEY
Date: 2002-12-02 20:31:03
Message-ID: 1038861062.46704.79.camel@jester
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Right now ALTER .. ADD PRIMARY KEY insists that the columns must be NOT
NULL first. I'd like to change it so that it automatically creates the
NOT NULL constraint (same as CREATE TABLE). I didn't see anything in
the spec for or against doing this automatically.

I believe the best way to do this is to move the NULL test to
index_create or CreateConstraintEntry (leaning towards the latter) and
use the AlterTableAlterColumnSetNotNull function to add in the bits.

This cleans out a good chuck of transformIndexConstraints(), and will
allow PRIMARY KEYS on inherited columns do to the right thing in adding
a nullness bit.

On a new table, there are no rows to check, so alter table is almost
free. Likewise, we can add type checks to see if the type allows null,
skipping the table constraint if this is the case.

--
Rod Taylor <rbt(at)rbt(dot)ca>

PGP Key: http://www.rbt.ca/rbtpub.asc

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Magnus Naeslund(f) 2002-12-02 20:34:20 Re: 7.4 Wishlist
Previous Message Kris Jurka 2002-12-02 20:29:46 Re: PG 7.3: Query Meta Data with the JDBC-driver