Re: cursor already in use, UPDATE RETURNING bug? - Mailing list pgsql-hackers

From Jaime Casanova
Subject Re: cursor already in use, UPDATE RETURNING bug?
Date
Msg-id CAJKUy5iLV2ddvadjZEjVa2a5f8ThP9dayE18w90+2nGTVomgfw@mail.gmail.com
Whole thread Raw
In response to Re: cursor already in use, UPDATE RETURNING bug?  (Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>)
List pgsql-hackers
On Wed, Mar 31, 2021 at 7:50 AM Ashutosh Bapat
<ashutosh.bapat.oss@gmail.com> wrote:
>
> On Wed, Mar 31, 2021 at 6:09 AM Jaime Casanova
>
> >
> > -- this fails
> > update t2 set i = 5 returning cursor_bug() as c1;
> > ERROR:  cursor "c1" already in use
> > CONTEXT:  PL/pgSQL function cursor_bug() line 6 at OPEN
>
> but that's called as many time as the number of rows in t2 in the same
> transaction. The first row will go fine. For the second row it will
> find c1 is already open. Shouldn't cursor_bug() close c1 at the end?
> Is it intended to be kept open when the function finishes? May be you
> are expecting it to be closed automatically when the function
> finishes. But that's not what is documented at
> https://www.postgresql.org/docs/13/plpgsql-cursors.html.
>

Now that I see it again, after sleeping, I can see you're right! sorry
for the noise

-- 
Jaime Casanova
Director de Servicios Profesionales
SYSTEMGUARDS - Consultores de PostgreSQL



pgsql-hackers by date:

Previous
From: Laurenz Albe
Date:
Subject: Re: Prevent query cancel packets from being replayed by an attacker (From TODO)
Next
From: Merlin Moncure
Date:
Subject: Re: unconstrained memory growth in long running procedure stored procedure after upgrading 11-12