]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Here is my much-promised patch to let people add UNIQUE constraints after
authorBruce Momjian <bruce@momjian.us>
Fri, 7 Sep 2001 21:57:53 +0000 (21:57 +0000)
committerBruce Momjian <bruce@momjian.us>
Fri, 7 Sep 2001 21:57:53 +0000 (21:57 +0000)
commitbd9b32803bee2a85e41deb5e546c3b0e16912e2b
tree0528a43344227ddbf5e65a466996c5a3089917c0
parent68e190cfa4d3f121de310fbbad89b4f26fb9198f
Here is my much-promised patch to let people add UNIQUE constraints after
table creation time.  Big deal you say - but this patch is the basis of the
next thing which is adding PRIMARY KEYs after table creation time.  (Which
is currently impossible without twiddling catalogs)

Rundown
-------

* I have made the makeObjectName function of analyze.c non-static, and
exported it in analyze.h

* I have included analyze.h and defrem.h into command.c, to support
makingObjectNames and creating indices

* I removed the 'case CONSTR_PRIMARY' clause so that it properly fails and
says you can't add primary keys, rather than just doing nothing and
reporting nothing!!!

* I have modified the docs.

Algorithm
---------

* If name specified is null, search for a new valid constraint name.  I'm
not sure if I should "lock" my generated name somehow tho - should I open
the relation before doing this step?

* Open relation in access exclusive mode

* Check that the constraint does not already exist

* Define the new index

* Warn if they're doubling up on an existing index

Christopher Kings-Lynne
doc/src/sgml/ref/alter_table.sgml
src/backend/commands/command.c
src/backend/parser/analyze.c
src/include/parser/analyze.h