Re: [SQL] An easy question about creating a primary key

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: "Christopher Kings-Lynne" <chriskl@familyhealth.com.au>
Cc: "Ligia Pimentel" <lmpimentel@yahoo.com>, "Hackers" <pgsql-hackers@postgresql.org>
Date: 2001-12-04T02:40:20Z
Lists: pgsql-hackers, pgsql-sql
Now that I look at it, I think I made the relevant changes in the
parser:

2001-10-11 20:07  tgl

	* doc/src/sgml/ref/alter_table.sgml, src/backend/catalog/pg_type.c,
	src/backend/commands/command.c, src/backend/parser/analyze.c,
	src/backend/tcop/utility.c, src/include/commands/command.h,
	src/include/nodes/parsenodes.h,
	src/test/regress/expected/alter_table.out,
	src/test/regress/expected/foreign_key.out: Break
	transformCreateStmt() into multiple routines and make
	transformAlterStmt() use these routines, instead of having lots of
	duplicate (not to mention should-have-been-duplicate) code.  Adding
	a column with a CHECK constraint actually works now, and the tests
	to reject unsupported DEFAULT and NOT NULL clauses actually fire
	now.  ALTER TABLE ADD PRIMARY KEY works, modulo having to have
	created the column(s) NOT NULL already.

I was mainly interested in eliminating the inconsistencies in parse-time
handling of CREATE TABLE and ALTER TABLE, and the ensuing bugs mentioned
in the commit log.  I didn't think much about the possibility that I was
obsoleting stuff in command.c, but maybe I did.

			regards, tom lane