Please make a note regarding the PL/pgSQL FOUND variable

Started by PG Bug reporting formover 2 years ago3 messagesdocs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/16/sql-createtableas.html
Description:

Since I was recently bitten by the fact that CREATE TABLE AS doesn't set the
PL/pgSQL variable FOUND, it would be nice if that were explicitly noted in
the documentation. Alternatively, if it COULD set the FOUND variable, that
would be great, although I realize the difficulty of that when coupled with
IF NOT EXISTS.

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: PG Bug reporting form (#1)
Re: Please make a note regarding the PL/pgSQL FOUND variable

PG Doc comments form <noreply@postgresql.org> writes:

Since I was recently bitten by the fact that CREATE TABLE AS doesn't set the
PL/pgSQL variable FOUND, it would be nice if that were explicitly noted in
the documentation. Alternatively, if it COULD set the FOUND variable, that
would be great, although I realize the difficulty of that when coupled with
IF NOT EXISTS.

The documentation of FOUND is already quite explicit about which kinds
of statements set it:

https://www.postgresql.org/docs/current/plpgsql-statements.html#PLPGSQL-STATEMENTS-DIAGNOSTICS

I'm disinclined to put notes about PL/pgSQL features into command
reference pages that have nothing to do with PL/pgSQL.

regards, tom lane

#3Thomas Trias
tomtrias@gmail.com
In reply to: Tom Lane (#2)
Re: Please make a note regarding the PL/pgSQL FOUND variable

Perhaps it could be explicitly stated on that page, then? Part of the
confusion arises from the semantic differences between SELECT INTO and
CREATE TABLE AS SELECT solely as used within PL/pgSQL, which is exacerbated
for people coming from a different SQL variant, such as T-SQL. I agree that
the documentation is explicit regarding which statements are supported for
FOUND, but this would be the explicit enumeration of a case where it is not
that has enough overlap with the supported cases as to potentially lead to
confusion. I do not think such could possibly detract from the
documentation in any way.

On Sat, Nov 4, 2023 at 10:16 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:

Show quoted text

PG Doc comments form <noreply@postgresql.org> writes:

Since I was recently bitten by the fact that CREATE TABLE AS doesn't set

the

PL/pgSQL variable FOUND, it would be nice if that were explicitly noted

in

the documentation. Alternatively, if it COULD set the FOUND variable,

that

would be great, although I realize the difficulty of that when coupled

with

IF NOT EXISTS.

The documentation of FOUND is already quite explicit about which kinds
of statements set it:

https://www.postgresql.org/docs/current/plpgsql-statements.html#PLPGSQL-STATEMENTS-DIAGNOSTICS

I'm disinclined to put notes about PL/pgSQL features into command
reference pages that have nothing to do with PL/pgSQL.

regards, tom lane