Joe Conway <mail@joeconway.com> writes:
>> is this also what happens at the time of table creation when one specifies
>> that a column is to be NOT NULL?
> Not quite the same, but the net effect is.
The built-in NOT NULL constraint is more efficient than doing it with a
general-purpose CHECK expression (or should be, anyway, but I've not
tried to measure the performance difference).
> I think I remember some discussion around making a way to add a not null
> modifier, but I don't believe it can be done today.
Chris Kings-Lynne recently contributed code to support ALTER COLUMN SET
NOT NULL and DROP NOT NULL, which will enable turning the built-in
constraint on and off. It will be in 7.3.
> (Except, maybe by hacking the system tables directly - it seems to work
> for me, but that's always a risky proposition.
That's all that the ALTER code does ;-)
regards, tom lane