pgsql/ oc/src/sgml/ref/alter_table.sgml rc/bac ... - Mailing list pgsql-committers

From Marc G. Fournier
Subject pgsql/ oc/src/sgml/ref/alter_table.sgml rc/bac ...
Date
Msg-id 200109072157.f87Lvsp78312@hub.org
Whole thread Raw
List pgsql-committers
CVSROOT:    /home/projects/pgsql/cvsroot
Module name:    pgsql
Changes by:    scrappy@hub.org    01/09/07 17:57:53

Modified files:
    doc/src/sgml/ref: alter_table.sgml
    src/backend/commands: command.c
    src/backend/parser: analyze.c
    src/include/parser: analyze.h

Log message:
    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


pgsql-committers by date:

Previous
From: "Marc G. Fournier"
Date:
Subject: pgsql/src/interfaces/libpgtcl pgtclId.c
Next
From: "Marc G. Fournier"
Date:
Subject: pgsql/ oc/src/sgml/libpq.sgml rc/interfaces/li ...