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
|
Список | 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 по дате отправления: