Maciej Mrozowski wrote:
Hello,

Not sure whether it's appropriate list for feature requests though..
Would it be suitable to implement such variable declarations in PL/pgSQL so that following (or similar) constructs would be possible?

DECLARE
        tmpStruct (name varchar, foo integer, bar boolean)[] := array[
('somename', 1, true),
('someothername', 2, false),
('yetothername', 3, true)
        ];
BEGIN
...

Or maybe it is possible already? (I know there are temporary tables but it's not quite the same). The goal to have temporary local random access data structures (like lookup tables), similar to those in C.



There have certainly been time I could have used this. You can get close using VALUES:

   create or replace function foo()
   returns void
   language plpgsql as
   $$

   declare
       rec record;
   begin
       for rec in
         select *
         from (values
             (1::int,'a'::text,'2009-08-06'::date),
             (5,'wxy','1998-12-23'))
          as x (a , b , c )
       loop
           raise notice 'a: %, b: %, c: %',
               rec.a + 1,
               length(rec.b),
               rec.c + interval '1 day';
       end loop;
   end;

   $$;

cheers

andrew

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to