Re: Range Types, constructors, and the type system - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Range Types, constructors, and the type system
Date
Msg-id 25069.1309979670@sss.pgh.pa.us
Whole thread Raw
In response to Re: Range Types, constructors, and the type system  (Jeff Davis <pgsql@j-davis.com>)
Responses Re: Range Types, constructors, and the type system
List pgsql-hackers
Jeff Davis <pgsql@j-davis.com> writes:
> On Wed, 2011-07-06 at 12:51 -0400, Robert Haas wrote:
>> 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.

> I'm also a little unclear on the rules for when that might be set
> properly or not.

> I ran into problems with that before... I think with the I/O functions.
> I don't think that's a problem here, but I thought I'd ask.

I think it'd probably be all right to do that.  The places where you
might find shortcuts being taken are where functions are called directly
by C code, such as I/O function calls --- but these constructors should
only ever get invoked from SQL queries, no?
        regards, tom lane


pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: Make relation_openrv atomic wrt DDL
Next
From: Robert Haas
Date:
Subject: Re: reducing the overhead of frequent table locks, v4