Thread: Record Types Structure in PL/pgSQL
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
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
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
>>> "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
"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
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