"=?utf-8?B?SmluaHVpIExhaQ==?=" <jinhui-lai@foxmail.com> writes:
> Thanks for your reply, I get your detailed explanation. I also agree that is weird. Especially, the the c0's
constraintis NOT NULL.
Yeah. We have adopted the policy that the spec's definition of this
applies only to the specific SQL expression constructs "c IS NULL"
and "c IS NOT NULL". Elsewhere we generally take the position that
nullness is a simple boolean property: there is a value there, or
there isn't. Whether a row value contains some null columns doesn't
change that: if the container is there then it's not null.
Legalistic reading of the spec text offers some support for this
position, but I don't know whether the committee members actually
think that way or just have failed to clarify the text enough.
In any case, that's our position and we're quite unlikely to change
it, for reasons of backwards compatibility and performance.
regards, tom lane