Re: PL/pgSQL PERFORM with CTE - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: PL/pgSQL PERFORM with CTE
Date
Msg-id CAFj8pRAoTGZYWtvidW+G8b0Aq2WG9A4e1iphDHwacUnB=9hhoA@mail.gmail.com
Whole thread Raw
In response to PL/pgSQL PERFORM with CTE  ("David E. Wheeler" <david@justatheory.com>)
Responses Re: PL/pgSQL PERFORM with CTE  ("David E. Wheeler" <david@justatheory.com>)
List pgsql-hackers
Hello


2013/8/20 David E. Wheeler <david@justatheory.com>
Hackers,

This seems reasonable:

    david=# DO $$
    david$# BEGIN
    david$#     WITH now AS (SELECT now())
    david$#     SELECT * from now;
    david$# END;
    david$# $$;
    ERROR:  query has no destination for result data
    HINT:  If you want to discard the results of a SELECT, use PERFORM instead.
    CONTEXT:  PL/pgSQL function inline_code_block line 3 at SQL statement

This not so much:

    david=# DO $$
    david$# BEGIN
    david$#     WITH now AS (SELECT now())
    david$#     PERFORM * from now;
    david$# END;
    david$# $$;
    ERROR:  syntax error at or near "PERFORM"
    LINE 4:     PERFORM * from now;
                ^
Parser bug in PL/pgSQL, perhaps?

no

you cannot use a PL/pgSQL statement inside SQL statement.

Regards

Pavel
 

Best,

David



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

pgsql-hackers by date:

Previous
From: "David E. Wheeler"
Date:
Subject: PL/pgSQL PERFORM with CTE
Next
From: "David E. Wheeler"
Date:
Subject: Re: PL/pgSQL PERFORM with CTE