Обсуждение: Record Types Structure in PL/pgSQL

Поиск
Список
Период
Сортировка

Record Types Structure in PL/pgSQL

От
"Diego Sanchez R."
Дата:
Hi there.

Is there any way of determining the actual structure of a record variable? E. g. I've written a small script to do some calculations  over some fields with a dinamically generated query. It looks like this:

create function foo(text) returns void as
$$
declare
a_record record;
my_query alias for $1;
begin
for a_record in execute my_query loop
-- Do some calculations
end loop;
return;
end;
$$
language plpgsql;


The question is: how could I possibly get the field names and other information about the record
a_record? I appreciate any suggestions or tips about this.

Best regards.


--
Diego M. Sánchez

Re: Record Types Structure in PL/pgSQL

От
"Bart Degryse"
Дата:
Impossible in plpgsql. Use plperl instead.

>>> "Diego Sanchez R." <dmsanchezr@gmail.com> 2007-06-08 14:14 >>>
Hi there.

Is there any way of determining the actual structure of a record variable? E. g. I've written a small script to do some calculations  over some fields with a dinamically generated query. It looks like this:

create function foo(text) returns void as
$$
declare
a_record record;
my_query alias for $1;
begin
for a_record in execute my_query loop
-- Do some calculations
end loop;
return;
end;
$$
language plpgsql;


The question is: how could I possibly get the field names and other information about the record
a_record? I appreciate any suggestions or tips about this.

Best regards.


--
Diego M. Sánchez

Re: Record Types Structure in PL/pgSQL

От
Tom Lane
Дата:
"Diego Sanchez R." <dmsanchezr@gmail.com> writes:
> Is there any way of determining the actual structure of a record variable?

Not in plpgsql; even if the info were exposed, you couldn't do anything
very useful because that language is strongly typed.

In some of the other PLs you could do it --- eg, in plperl the field
names are keys of a hash.  Or as a last resort there's always C.

            regards, tom lane

Re: Record Types Structure in PL/pgSQL

От
"Merlin Moncure"
Дата:
On 6/8/07, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> "Diego Sanchez R." <dmsanchezr@gmail.com> writes:
> > Is there any way of determining the actual structure of a record variable?
>
> Not in plpgsql; even if the info were exposed, you couldn't do anything
> very useful because that language is strongly typed.
>

Well, you could do lots of useful things via dynamic sql...

merlin