PERFORM not working properly, please help..

From: wilczarz1(at)op(dot)pl
To: pgsql-general(at)postgresql(dot)org
Subject: PERFORM not working properly, please help..
Date: 2010-02-18 12:05:57
Message-ID: Q17981249-b924cd6da17d52ddbecea39d9f10866e@pmq2.m5r2.onet.test.onet.pl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

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!

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..

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Ivan Sergio Borgonovo 2010-02-18 14:44:30 errmsg and multi-byte strings.
Previous Message dipti shah 2010-02-18 11:09:06 Re: Define permissions at database level