Re: Create into temp table as select doesn set "found" - Mailing list pgsql-bugs

From Tom Lane
Subject Re: Create into temp table as select doesn set "found"
Date
Msg-id 16270.1418917894@sss.pgh.pa.us
Whole thread Raw
In response to Create into temp table as select doesn set "found"  (Jan Hink <hink@rac.cz>)
List pgsql-bugs
Jan Hink <hink@rac.cz> writes:
> In plpgsql procedure I have this commads:

>         create temp table t_expert on commit drop as
>         select * from v_expert e where user_account=$1;

>         get diagnostics rowcount=row_count;
>         raise notice 'found=%, rowcount=%', found, rowcount;

> The notice returned "found=f, rowcount=2"

> I expected "found" should be set properly to true, when rowcount>0.

The set of statements that affect FOUND is specified here:
http://www.postgresql.org/docs/9.3/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-DIAGNOSTICS
CREATE TABLE AS is not among them.

In a green field we might think that it would be a good idea if it did,
but at this point in plpgsql's evolution changing that behavior would
be more likely to break existing code than to make users happier.
In particular, there is intentionally not a promise that FOUND and
ROW_COUNT are set by the exact same collections of statements.

            regards, tom lane

pgsql-bugs by date:

Previous
From: jaksits.tibor@gmail.com
Date:
Subject: BUG #12273: CASE Expression BUG
Next
From: Tom Lane
Date:
Subject: Re: BUG #12273: CASE Expression BUG