Search Postgresql Archives

Re: PERFORM not working properly, please help..

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

 



Hello

2010/2/18  <wilczarz1@xxxxx>:
> I have a function A1 that returns setof records, and I use it in two ways:
> 1) from function A2, where I need results from A1
> 2) from function A3, where I don't need these results, all I need is to
> execute logic from A1
>
> Here ale very simple versions of my functions:
>
> CREATE OR REPLACE FUNCTION A1() RETURNS setof record AS $BODY$
> begin
>  -- some logic here
>  return query select col from tab;
> end;
> $BODY$ LANGUAGE 'plpgsql';
>
> CREATE OR REPLACE FUNCTION A2() RETURNS setof record AS $BODY$
> begin
>  -- some logic here
>  return query select * from A1() as dummy ( x double precision);
> end;
> $BODY$ LANGUAGE 'plpgsql';
>
> CREATE OR REPLACE FUNCTION A3() RETURNS VOID AS $BODY$
> begin
>  perform A1();
> end;
> $BODY$ LANGUAGE 'plpgsql';
>
> And here are my function calls:
> select * from A1() as(x double precision) --ok
> select * from A2() as(x double precision) --ok
> select * from A3(); --not ok, argh!
>

it is correct. Every function has own stack for result. There are not
some global stack. Perform just run function and doesn't copy inner
result's stack to outer result stack.

your A3 function have to be
begin
  return query select * from a1
  return;
end;

like a2 function

regards
Pavel Stehule
> The last one generates error "set-valued function called in context that
> cannot accept a set". Why doesn't PERFORM work here? Thanks for help..
>

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


[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 Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux