Peter Eisentraut <[EMAIL PROTECTED]> 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 ---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly