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 nullb | 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