Thread: PL/pgSQL: FOUND not set by EXECUTE?

PL/pgSQL: FOUND not set by EXECUTE?

From
Brendan Jurd
Date:
Hello all,

I've discovered that in 7.4.2 PL/pgSQL, the FOUND variable is not at all
affected by use of the EXECUTE command, even if the statement you pass
to EXECUTE would set FOUND to true when run directly.  The documentation
doesn't really point this out, and in my opinion, it's an unintuitive
behaviour.  Why would executing the command dynamically make a
difference to how FOUND is treated?  The statement still "happens" in
the end, additional query plan or no.

Could someone please clarify?

Regards,

Brendan Jurd



Re: PL/pgSQL: FOUND not set by EXECUTE?

From
Rory Campbell-Lange
Date:
On 24/05/04, Brendan Jurd (blakjak@blakjak.sytes.net) wrote:
> I've discovered that in 7.4.2 PL/pgSQL, the FOUND variable is not at all
> affected by use of the EXECUTE command, even if the statement you pass
> to EXECUTE would set FOUND to true when run directly.  The documentation
> doesn't really point this out, and in my opinion, it's an unintuitive
> behaviour.  Why would executing the command dynamically make a
> difference to how FOUND is treated?  The statement still "happens" in
> the end, additional query plan or no.

"FOUND is a local variable; any changes to it affect only the current
PL/pgSQL  function."

HTML manual reference:

    plpgsql-statements.html#PLPGSQL-STATEMENTS-PERFORM

Rory

--
Rory Campbell-Lange
<rory@campbell-lange.net>
<www.campbell-lange.net>