"Christopher Kings-Lynne" <chriskl@familyhealth.com.au> writes:
> Hmmm...I don't see the need at all for NOT NULL constraint tracking. The
> spec doesn't seem to require it and we do not have names for them anyway.
> Even if they were given names, it'd be pointless, as there's only one per
> column.
Hmm, you're probably right. Way back when, I was thinking of naming
them as a route to allowing DROP CONSTRAINT for them --- but given the
ALTER TABLE SET/DROP NOT NULL syntax that we have now, supporting DROP
CONSTRAINT is not really necessary. So I concur that not-null isn't a
feature that pg_constraint needs to deal with.
> Why not just create a pg_references table and leave pg_relcheck as is?
One reason is that that structure wouldn't guarantee that
check-constraint names are distinct from references/unique-constraint
names, which'd make life difficult for DROP CONSTRAINT.
regards, tom lane