Thread: EXECUTE INTO on 8.2

EXECUTE INTO on 8.2

From
"Jon Asher"
Date:
I'm seeing some strange behavior with the following code.  It compiles and runs but returns an error on the Execute statement:
List index out of bounds(0)
 
DECLARE
   srec record;
   v_formula varchar;
   v_result varchar;
 
BEGIN
   v_formula = 'select 4 as val';
   EXECUTE v_formula INTO srec;
END;
 
However, the old school version runs w/no problem:
 
BEGIN
   v_formula = 'select 4 as val';
  
   FOR srec IN EXECUTE v_formula LOOP
       v_result = srec.val;
   END LOOP;
END;
 
Any idea why the new syntax isn't working?  (I'm running 8.2 on a Windows dev box.)

Re: EXECUTE INTO on 8.2

From
Tom Lane
Date:
"Jon Asher" <jon.asher@gmail.com> writes:
> I'm seeing some strange behavior with the following code.  It compiles and
> runs but returns an error on the Execute statement:
> List index out of bounds(0)

Worksforme.  Want to provide a complete example instead of a fragmentary
one?

regression$# create or replace function foo() returns int as $$
declare srec record;
   v_formula varchar;
   v_result varchar;
BEGIN
   v_formula = 'select 4 as val';
   EXECUTE v_formula INTO srec;
   return srec.val;
end $$ language plpgsql;
CREATE FUNCTION
regression=# select foo();
 foo
-----
   4
(1 row)

regression=#

            regards, tom lane