Re: Prepared statements and cursors

From: Andreas Lubensky <lubensky(at)cognitec(dot)com>
To: Merlin Moncure <mmoncure(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Prepared statements and cursors
Date: 2014-01-28 13:53:36
Message-ID: 1390917216.26141.15.camel@aries.cognitec-systems.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(at)cognitec(dot)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

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Merlin Moncure 2014-01-28 14:16:25 Re: Prepared statements and cursors
Previous Message John R Pierce 2014-01-28 03:40:35 Re: Fully-automatic streaming replication failover when master dies?