Re: Patch to add a primary key using an existing index
Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
From: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: Peter Eisentraut <peter_e@gmx.net>, Itagaki Takahiro <itagaki.takahiro@gmail.com>, Gurjeet Singh <singh.gurjeet@gmail.com>, Steve Singer <ssinger@ca.afilias.info>, Steve Singer <ssinger_pg@sympatico.ca>, PGSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2010-12-03T19:45:59Z
Lists: pgsql-hackers
On 03.12.2010 21:43, Robert Haas wrote: > On Fri, Dec 3, 2010 at 2:23 PM, Peter Eisentraut<peter_e@gmx.net> wrote: >> On sön, 2010-11-28 at 20:40 -0500, Robert Haas wrote: >>> On Sun, Nov 28, 2010 at 8:06 PM, Itagaki Takahiro >>> <itagaki.takahiro@gmail.com> wrote: >>>> On Fri, Nov 26, 2010 at 05:58, Steve Singer<ssinger@ca.afilias.info> wrote: >>>>> The attached version of the patch gets your regression tests to pass. >>>>> I'm going to mark this as ready for a committer. >>>> >>>> I think we need more discussions about the syntax: >>>> ALTER TABLE table_name ADD PRIMARY KEY (...) WITH (INDEX='index_name') >>> >>> Why not: >>> >>> ALTER TABLE table_name ADD PRIMARY KEY (...) INDEX index_name; >> >> I would think that that determines that name of the index that the >> command creates. It does not convey that an existing index is to be >> used. > > Well, that'll become clear pretty quickly if you try to use it that > way, but I'm certainly open to other ideas. > > Random thoughts: > > ALTER TABLE table_name SET PRIMARY KEY INDEX index_name > ALTER INDEX index_name PRIMARY KEY ALTER TABLE table_name SET PRIMARY KEY USING INDEX index_name. Quite verbose, but imho USING makes it much more clear that it's an existing index. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com