Search Postgresql Archives

Re: select from composite type

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



here an example (the actual case in more complex, but the point it's the same)

do $$
declare
_attribute_list temp1.my_type[];
_attribute temp1.my_type;

_r record;
begin
_attribute_list=array[row(1,'Hello') , row(2,'Goodbye')];

_attribute= row(1,'Doh!!!!');

raise notice '%', _attribute_list;

for _r in execute 'select * from unnest($1) where foo=1' using _attribute_list loop
raise notice '%', _r;
end loop;

--Error
execute 'select * from $1' using _attribute into _r;

raise notice '%', _r;
end;
$$;


So I able to manage an array of complex type (why I use an array, because in a previous answer the community suggest to me to use an array to pass a list of information instead of temporary table), but I can't do the same thing with just an element.

Of course I can set an element as part of an array with just that element but. it's sad...


Il giorno lun 5 feb 2024 alle ore 01:48 David G. Johnston <david.g.johnston@xxxxxxxxx> ha scritto:
On Sun, Feb 4, 2024 at 5:39 PM Adrian Klaver <adrian.klaver@xxxxxxxxxxx> wrote:

>
> attribute_list is  an array of composite type (with 20 fields).

I am trying to wrap my head around "array of composite type". Please
provide an example.

ARRAY[ (1,2)::point, (3,4)::point ]::point[]

The main problem is the concept of writing "from($1)" in any query makes no sense, you cannot parameterize a from clause directly like that.  You have to put the value somewhere an _expression_ is directly allowed.

David J.


--
Domenico L.

per stupire mezz'ora basta un libro di storia,
io cercai di imparare la Treccani a memoria... [F.d.A.]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux