Re: [SQL] An easy question about creating a primary key - Mailing list pgsql-hackers

From Tom Lane
Subject Re: [SQL] An easy question about creating a primary key
Date
Msg-id 21379.1007432989@sss.pgh.pa.us
Whole thread Raw
In response to Re: [SQL] An easy question about creating a primary key  ("Christopher Kings-Lynne" <chriskl@familyhealth.com.au>)
Responses Re: [SQL] An easy question about creating a primary key  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
"Christopher Kings-Lynne" <chriskl@familyhealth.com.au> writes:
>> I think you've forgotten your own work, Chris.
>> 
>> regression=# create table foo (bar int not null);
>> CREATE
>> regression=# alter table foo add primary key (bar);
>> NOTICE:  ALTER TABLE / ADD PRIMARY KEY will create implicit index
>> 'foo_pkey' for table 'foo'
>> CREATE
>> regression=#

> Bizarre.  That patch was never committed.  If you check
> src/backend/commands/command.c and search for 'CONSTR_' you'll notice that
> the CONSTR_UNIQUE function I implemented is there, but CONSTR_PRIMARY is
> definitely not being handled.  (I'm looking at the 7.2b2 source code)

Hmm ... actually, I wonder whether that code in command.c isn't entirely
dead code.  I believe that as things stand, parser/analyze.c converts
UNIQUE and PRIMARY constraints into CREATE INDEX statements; the
constraint nodes themselves never make it past the parser.  It looks to
me like command.c only needs to handle CHECK constraints and foreign-key
constraints, cf transformAlterTableStmt().
        regards, tom lane


pgsql-hackers by date:

Previous
From: "Christopher Kings-Lynne"
Date:
Subject: Re: [SQL] An easy question about creating a primary key
Next
From: Tom Lane
Date:
Subject: Re: [SQL] An easy question about creating a primary key