Bug in ADD COLUMN with REFERENCES

Started by Christopher Kings-Lynneover 24 years ago1 messages
#1Christopher Kings-Lynne
chriskl@familyhealth.com.au

Try this:

test=# create table parent(a int4 primary key);
NOTICE:  CREATE TABLE/PRIMARY KEY will create implicit index 'parent_pkey'
for table 'parent'
CREATE
test=# alter table parent add column "b" int4 references parent(c) on delete
set null;
ALTER
test=# \d test
Did not find any relation named "test".
test=# \d parent
         Table "parent"
 Attribute |  Type   | Modifier
-----------+---------+----------
 a         | integer | not null
 b         | integer |
Index: parent_pkey

Notice how the reference to the non-existent column was allowed...

Now I check the pg_trigger table:

test=# select * from pg_trigger;
tgrelid | tgname | tgfoid | tgtype | tgenabled | tgisconstraint |
tgconst
rname | tgconstrrelid | tgdeferrable | tginitdeferred | tgnargs | tgattr |
tgargs
---------+----------------+--------+--------+-----------+----------------+--
------
------+---------------+--------------+----------------+---------+--------+--
------
1260 | pg_sync_pg_pwd | 1689 | 29 | t | f |
| 0 | f | f | 0 | |
(1 row)

...and it looks like the reference was never created...

Chris