On Sat, Jul 23, 2011 at 4:37 AM, Dean Rasheed <dean.a.rash...@gmail.com> wrote:
> That looks wrong to me, because a NOT NULL constraint is a column
> constraint not a table constraint. The CREATE TABLE syntax explicitly
> distinguishes these 2 cases, and only allows NOT NULLs in column
> constraints. So from a consistency point-of-view, I think that ALTER
> TABLE should follow suit.
>
> So the new syntax could be:
>
> ALTER TABLE table_name ALTER [COLUMN] col_name ADD column_constraint
>
> where column_constraint is the same as in CREATE TABLE (i.e., allowing
> all the other constraint types at the same time).
>
> It looks like that approach would probably lend itself to more
> code-reusability too, especially once we start adding options to the
> constraint.

So you'd end up with something like this?

ALTER TABLE foo ALTER COLUMN bar ADD CONSTRAINT somename NOT NULL

That works for me.  I think sticking the name of the constraint in
there at the end of the line as Alvaro proposed would be terrible for
future syntax extensibility - we'll be much less likely to paint
ourselves into a corner with something like this.

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

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to