On Wed, Jul 6, 2011 at 12:22 PM, Jeff Davis <pgsql@j-davis.com> wrote:
> To get into some more details: how exactly would this constructor be
> generated on the fly? Clearly we want only one underlying C function
> that accepts something like:
> range_internal(lower, upper, flags, Oid rangetype)
> So how do we get the rangetype in there?
I think that the C function could call get_call_result_type() and get
the return type OID back via the second argument.
> Also, are default arguments always applied in all the contexts where
> this function might be called?
Uh, I'm not sure. But I don't see why it would need different
handling than any other function which takes default arguments. It
shouldn't be needed during bootstrapping or anything funky like that.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company