Can't use WITH in a PERFORM query in PL/pgSQL? - Mailing list pgsql-bugs

From
Subject Can't use WITH in a PERFORM query in PL/pgSQL?
Date
Msg-id 29F36C7C98AB09499B1A209D48EAA615B501DA902C@mail2a.alliedtesting.com
Whole thread Raw
Responses Re: Can't use WITH in a PERFORM query in PL/pgSQL?  (Vik Reykja <vikreykja@gmail.com>)
List pgsql-bugs
PostgreSQL 9.0.1

It seems that PostgreSQL doesn't understand the WITH construct when used in=
 a PERFORM query inside PL/pgSQL functions and code blocks:

Example:

do
$$begin
with A as (select 1 as foo)
perform foo from A;
end$$;

    syntax error at or near "perform"

do
$$begin
with A as (select 1 as foo)
select foo from A;
end$$;

    query has no destination for result data

The only workaround that I can think of is to use a dummy variable to captu=
re the query result. This has to be done even when the query doesn't have a=
 result (as when calling a function returning void).

do
$$declare
dummy record;
begin
with A as (select 1 as foo)
select foo into dummy from A;
end$$;


Dmitry Epstein | Developer
Allied Testing
T + 7 495 544 48 69 Ext 417
M + 7 926 215 73 36

www.alliedtesting.com<http://www.alliedtesting.com/>
We Deliver Quality.

pgsql-bugs by date:

Previous
From: Heikki Linnakangas
Date:
Subject: Re: BUG #5915: OldSerXidAdd inflates pg_serial too much
Next
From: Vik Reykja
Date:
Subject: Re: Can't use WITH in a PERFORM query in PL/pgSQL?