Re: BUG #2948: default null values for not-null domains - Mailing list pgsql-bugs

From Sergiy Vyshnevetskiy
Subject Re: BUG #2948: default null values for not-null domains
Date
Msg-id Pine.LNX.4.64.0702011341320.22446@uanet.vostok.net
Whole thread Raw
In response to Re: BUG #2948: default null values for not-null domains  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: BUG #2948: default null values for not-null domains  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
On Wed, 31 Jan 2007, Tom Lane wrote:

> Sergiy Vyshnevetskiy <serg@vostok.net> writes:
>> Not at all. What's "broken" is the idea of variable as a simple piece of
>> memory. It is correct for base types, but not for domains - they may have
>> non-empty constructors (in C++ terminology).
>
> That may be, but I'm unwilling to pay the overhead for *every* variable
> when most of them won't be domains.  I'm inclined to extend PLpgSQL_type
> to include a domain indicator and only do it the hard way when we have to.

Why not add PLPGSQL_TTYPE_DOMAIN and rename PLPGSQL_TTYPE_SCALAR to
PLPGSQL_TTYPE_BASE? We only use PLPGSQL_TTYPE_SCALAR in _3_ places!

> [ looks at code... ]  Actually, I think we already have the flag we
> need: look to see if the typinput function is strict.

All domains have domain_in as input function - it is NOT strict.


Anyway, as we assign a value to a domain variable we must check
constraints - that's the whole point of domains. Even when the value is
"null".

Hack attached. Any reasons not to call it a bugfix?

pgsql-bugs by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: BUG #2948: default null values for not-null domains
Next
From: Tom Lane
Date:
Subject: Re: BUG #2948: default null values for not-null domains