Re: Creating unique constraints on OID

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Creating unique constraints on OID
Дата
Msg-id 27897.1003791239@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Creating unique constraints on OID  (Peter Eisentraut <peter_e@gmx.net>)
Ответы Re: Creating unique constraints on OID  ("Christopher Kings-Lynne" <chriskl@familyhealth.com.au>)
Список pgsql-hackers
Peter Eisentraut <peter_e@gmx.net> writes:
> Shouldn't this work?
> create table test ( a int, unique (oid) );
> ERROR:  CREATE TABLE: column "oid" named in key does not exist

Now it does.

regression=# create table test ( a int, unique (oid) );
NOTICE:  CREATE TABLE/UNIQUE will create implicit index 'test_oid_key' for table 'test'
CREATE
regression=# drop table test;
DROP
regression=# create table test ( a int, unique (oid) ) without oids;
ERROR:  CREATE TABLE: column "oid" named in key does not exist
regression=# create table test ( a int ) without oids;
CREATE
regression=# alter table test add unique (oid);
ERROR:  ALTER TABLE: column "oid" named in key does not exist
regression=# drop table test;
DROP
regression=# create table test ( a int );
CREATE
regression=# alter table test add unique (oid);
NOTICE:  ALTER TABLE/UNIQUE will create implicit index 'test_oid_key' for table 'test'
CREATE
regression=#

> And shouldn't the last one say "ALTER"?

The reason that happens is that parser/analyze.c transforms the command
into an ALTER TABLE step that adds a constraint (a no-op in this case)
plus a CREATE INDEX step.  The commandTag emitted by the last step is
what psql shows.  This could possibly be fixed, but it seems not worth
the trouble.
        regards, tom lane


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: [GENERAL] To Postgres Devs : Wouldn't changing the select limit
Следующее
От: "Johann Zuschlag"
Дата:
Сообщение: Re: Error while restoring database