Support for cursors in PL/pgSQL - Mailing list pgsql-patches

From Ian Lance Taylor
Subject Support for cursors in PL/pgSQL
Date
Msg-id si4ryqiyzm.fsf@daffy.airs.com
Whole thread Raw
Responses Re: Support for cursors in PL/pgSQL
List pgsql-patches
This is my second try sending mail about this, since my last try seems
to have vanished without a trace.

This patch adds support for cursors in PL/pgSQL.  The syntax generally
follows Oracle's PL/SQL.

Cursors are not required in a language like PL/pgSQL, since the FOR
statement permits the same sorts of operations.  But being able to
name cursors can be convenient; for example, it allows easily stepping
through two tables simultaneously.  Cursor support also makes it
easier for people to port Oracle PL/SQL stored procedures to Postgres.

This patch includes documentation and a regression test.

This patch adds four new keywords to PL/pgSQL: CURSOR, OPEN, FETCH,
and CLOSE.  CURSOR, FETCH, and CLOSE are keywords in SQL, and as such
are unlikely to be used in existing PL/pgSQL programs.  However, it is
possible that adding OPEN as a keyword will break some existing code.

It is presumably too late to get this patch into the 7.1 release.  I
would like to work with the maintainers to get this patch into 7.2 and
future releases.

This work is contributed by Zembu.

Ian

begin 664 plpgsql-cursor.patch.gz
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
!````
`
end

pgsql-patches by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: RE: SSL Connections [doc PATCH]
Next
From: Bruce Momjian
Date:
Subject: Re: Support for cursors in PL/pgSQL