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