pass open cursor via USING in execute staement

2023-06-01 Thread PG Doc comments form
The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/15/plpgsql-statements.html
Description:

Should be documented if this statement is allowed or not (if not, maybe set
as desired feature :-) )

EXECUTE format('update %I set col1=$1, col2=now() WHERE current of $3',
tabname)
   USING myVal, myOpenCursor;


Re: pass open cursor via USING in execute staement

2023-06-01 Thread Laurenz Albe
On Wed, 2023-05-31 at 22:57 +, PG Doc comments form wrote:
> Page: https://www.postgresql.org/docs/15/plpgsql-statements.html
> 
> Should be documented if this statement is allowed or not (if not, maybe set
> as desired feature :-) )
> 
> EXECUTE format('update %I set col1=$1, col2=now() WHERE current of $3',
> tabname)
>    USING myVal, myOpenCursor;

That is not supported.  Parameters can only be used in a place where constants
(SQL literals) might appear, not instead of identifiers (names of tables, 
columns etc.)

I looked, and that is really not documented anywhere.
One of PREPARE or the extended query protocol might be good places.

Yours,
Laurenz Albe




Re: pass open cursor via USING in execute staement

2023-06-01 Thread Lorusso Domenico
Yes, I agree, but also in cursor page.
Talking about cursor I can't find example that shows how pass a bounded
cursor to a function or procedure (must be already open? must be declared
in some specific way?)

Il giorno gio 1 giu 2023 alle ore 16:23 Laurenz Albe <
[email protected]> ha scritto:

> On Wed, 2023-05-31 at 22:57 +, PG Doc comments form wrote:
> > Page: https://www.postgresql.org/docs/15/plpgsql-statements.html
> >
> > Should be documented if this statement is allowed or not (if not, maybe
> set
> > as desired feature :-) )
> >
> > EXECUTE format('update %I set col1=$1, col2=now() WHERE current of $3',
> > tabname)
> >USING myVal, myOpenCursor;
>
> That is not supported.  Parameters can only be used in a place where
> constants
> (SQL literals) might appear, not instead of identifiers (names of tables,
> columns etc.)
>
> I looked, and that is really not documented anywhere.
> One of PREPARE or the extended query protocol might be good places.
>
> Yours,
> Laurenz Albe
>


-- 
Domenico L.

per stupire mezz'ora basta un libro di storia,
io cercai di imparare la Treccani a memoria... [F.d.A.]