Re: anonymous composite types - how to pass tupdesc to - Mailing list pgsql-hackers

From Joe Conway
Subject Re: anonymous composite types - how to pass tupdesc to
Date
Msg-id 3D6A86ED.7040808@joeconway.com
Whole thread Raw
In response to anonymous composite types - how to pass tupdesc to the function  (Joe Conway <mail@joeconway.com>)
List pgsql-hackers
Tom Lane wrote:
> Joe Conway <mail@joeconway.com> writes:
> 
>>I'm trying to come up with the best method to pass the query string 
>>columndef, or better yet the tuple description, to the function. Any 
>>suggestions on an approach?
> 
> 
> Can't it get it for itself from the results of the query, ie, look at
> PQftype() and so on to build a tupledesc?

Hmm. Good point. That certainly works for dblink.

I guess most functions with need for anonymous composite types would be 
able to derive a tupdesc from libpq (dblink), SPI 
(tablefunc.c:crosstab), function arguments (tablefunc.c:crosstab), or it 
would be known in advance (guc.c:show_all_settings).

Can anyone think of a use case where the *only* source of tuple 
description would come from the query column def?


> I guess there are some gotchas with inconsistent type OIDs between
> remote and local databases, but that still seems much less of a risk
> than manual errors in giving the columnset definition.  You could at
> least check that PQfsize matches the local type's typlen as a way of
> detecting chance collisions of user-defined type OIDs.

Another good point.

Thanks!

Joe




pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: anonymous composite types - how to pass tupdesc to the function
Next
From: Bruce Momjian
Date:
Subject: Re: Think I see a btree vacuuming bug