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

From Tom Lane
Subject Re: Can't use WITH in a PERFORM query in PL/pgSQL?
Date
Msg-id 19518.1319057158@sss.pgh.pa.us
Whole thread Raw
In response to Re: Can't use WITH in a PERFORM query in PL/pgSQL?  (Merlin Moncure <mmoncure@gmail.com>)
Responses Re: Can't use WITH in a PERFORM query in PL/pgSQL?  ("Kevin Grittner" <Kevin.Grittner@wicourts.gov>)
Re: Can't use WITH in a PERFORM query in PL/pgSQL?  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: Can't use WITH in a PERFORM query in PL/pgSQL?  (Valentine Gogichashvili <valgog@gmail.com>)
List pgsql-bugs
Merlin Moncure <mmoncure@gmail.com> writes:
> The point being, how do I convert any query to a non WITH variant so
> it can be PERFORM'd?  Anyways, I always thought having to do perform
> at all was pretty weak sauce -- not sure why it's required.

Possibly it was an Oracle compatibility thing ... anyone know PL/SQL
well enough to say how this works there?

I suppose you could argue that selecting a value and implicitly throwing
it away is confusing to novices, but on the other hand I've seen a whole
lot of novices confused by the need to write PERFORM instead of SELECT.
I think it wouldn't be an unreasonable thing to just interpret a SELECT
with no INTO clause as being a PERFORM (ie execute and discard results).
Then we'd not have to do anything magic for commands starting with WITH.

            regards, tom lane

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: incompatible pointer type
Next
From: "Kevin Grittner"
Date:
Subject: Re: Can't use WITH in a PERFORM query in PL/pgSQL?