Re: retrieving results of procedures with OUT params - Mailing list pgsql-docs

From ch.l.ngre
Subject Re: retrieving results of procedures with OUT params
Date
Msg-id 9823c60f-a482-4751-a94f-e14c29fe49d0@online.de
Whole thread Raw
In response to Re: retrieving results of procedures with OUT params  ("David G. Johnston" <david.g.johnston@gmail.com>)
Responses Re: retrieving results of procedures with OUT params
List pgsql-docs

Am 07.09.2024 um 18:35 schrieb David G. Johnston:
> On Monday, September 2, 2024, PG Doc comments form
> <noreply@postgresql.org <mailto:noreply@postgresql.org>> wrote:
>
>     The following documentation comment has been logged on the website:
>
>     Page: https://www.postgresql.org/docs/16/libpq-exec.html
>     <https://www.postgresql.org/docs/16/libpq-exec.html>
>     Description:
>
>     https://www.postgresql.org/docs/16/libpq-exec.html#LIBPQ-PQRESULTSTATUS
<https://www.postgresql.org/docs/16/libpq-exec.html#LIBPQ-PQRESULTSTATUS>
>     Existing text:
>     If the result status is PGRES_TUPLES_OK, PGRES_SINGLE_TUPLE, or
>     PGRES_TUPLES_CHUNK, then the functions described below can be used to
>     retrieve the rows returned by the query. Note that a SELECT command that
>     happens to retrieve zero rows still shows PGRES_TUPLES_OK.
>     PGRES_COMMAND_OK
>     is for commands that can never return rows (INSERT or UPDATE without a
>     RETURNING clause, etc.). A response of PGRES_EMPTY_QUERY might
>     indicate a
>     bug in the client software.
>     Add:
>     A successful call to a procedure with OUT parameters will set
>     PGRES_TUPLES_OK and return one row with the functions described below.
>
>
> Defining whether a given SQL query is or is not going to return tuples
> is not the responsibility of this paragraph.  The documentation for CALL
> is where this knowledge is imparted.  I’m not hard set against adding
> something here but it also doesn’t really seem like a need.
>
> If I were to do something I’d probably add “or a CALL of a procedure
> lacking OUT parameters, etc” as another example in the parenthetical
> talking about an omitted returning clause.
>
> David J.
>

You are right, the documentation for CALL states that a row is being
returned.
However if you read
https://www.postgresql.org/docs/current/xproc.html#XPROC
'Procedures do not return a function value; hence CREATE PROCEDURE lacks
a RETURNS clause. However, procedures can instead return data to their
callers via output parameters'
this does not sound like a row being returned. Also plpgsql does not do
it when you invoke CALL.
The libpq documentation does not mention CALL of a stored procedure with
out params at all. Maybe it should, - somewhere.

Christoph



pgsql-docs by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: retrieving results of procedures with OUT params
Next
From: "David G. Johnston"
Date:
Subject: Re: retrieving results of procedures with OUT params