Re: Prepared statements and cursors - Mailing list pgsql-general

From Andreas Lubensky
Subject Re: Prepared statements and cursors
Date
Msg-id 1390917216.26141.15.camel@aries.cognitec-systems.de
Whole thread Raw
In response to Re: Prepared statements and cursors  (Merlin Moncure <mmoncure@gmail.com>)
Responses Re: Prepared statements and cursors  (Merlin Moncure <mmoncure@gmail.com>)
List pgsql-general
That is an interesting approach. However, I see the problem that the
functions would have to be removed when no longer needed. If that fails
(broken connection etc.), they would be orphaned.
Prepared statements are bound to the connection, so when the connection
is closed they are gone.

On Thu, 2014-01-23 at 15:07 -0600, Merlin Moncure wrote:
> On Thu, Jan 23, 2014 at 8:31 AM, Andreas Lubensky <lubensky@cognitec.com> wrote:
> > Hello,
> > When implementing a database backend with libpq I realized that it seems
> > to be impossible to declare a cursor on a prepared statement. Is this
> > correct? What is the reason for this limitation?
>
> I can't think of any but it can be trivially worked around:
> create or replace function f() returns void as $$ declare v cursor for
> select 0; $$ language sql;
> prepare p as select f();
> postgres=# begin;
> BEGIN
> postgres=# execute p;
>  f
> ---
>
> (1 row)
>
> postgres=# fetch all from v;
>  ?column?
> ----------
>         0
>
> merlin
>

--
with best regards,

Andreas Lubensky

Software Engineer



pgsql-general by date:

Previous
From: John R Pierce
Date:
Subject: Re: Fully-automatic streaming replication failover when master dies?
Next
From: Merlin Moncure
Date:
Subject: Re: Prepared statements and cursors