Setting a pre-existing index as a primary key - Mailing list pgsql-hackers

From Jonah H. Harris
Subject Setting a pre-existing index as a primary key
Date
Msg-id 36e682920804081700n3ef85bafx54a1c9f431532a10@mail.gmail.com
Whole thread Raw
Responses Re: Setting a pre-existing index as a primary key  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: Setting a pre-existing index as a primary key  (Bruce Momjian <bruce@momjian.us>)
List pgsql-hackers
Hey all,

I've run into a couple cases now where it would be helpful to easily
assign an already-existing unique index as a primary key.  Unless I
completely missed something, there's no way to do this now without a
bit of catalog hackery.

My implementation idea is as follows:

Proposed Syntax (based on Oracle's syntax)

ALTER TABLE foo ADD CONSTRAINT bar PRIMARY KEY USING INDEX schema.tablename;

Proposed Implementation

1. Verify that the index named is a unique index
2. Check index columns for NOT NULL constraints
3. If indexed columns are not already NOT NULL, apply NOT NULL
4. If NOT NULL succeeds, complete the operation (catalogs,
dependencies, ...), else bail out.

Any comments, ideas, suggestions?

-- 
Jonah H. Harris, Sr. Software Architect | phone: 732.331.1324
EnterpriseDB Corporation | fax: 732.331.1301
499 Thornall Street, 2nd Floor | jonah.harris@enterprisedb.com
Edison, NJ 08837 | http://www.enterprisedb.com/


pgsql-hackers by date:

Previous
From: Andrew Chernow
Date:
Subject: Re: [PATCHES] libpq type system 0.9a
Next
From: Bruce Momjian
Date:
Subject: Re: [PATCHES] libpq type system 0.9a