BUG #2494: SCROLL CURSOR does not worl

Started by biuro@globeinphotos.comalmost 20 years ago3 messagesbugs
Jump to latest
#1biuro@globeinphotos.com
biuro@globeinphotos.com

The following bug has been logged online:

Bug reference: 2494
Logged by: Michal Szymanski
Email address: biuro@globeinphotos.com
PostgreSQL version: 8.1
Operating system: Windows
Description: SCROLL CURSOR does not worl
Details:

Function with scroll cursor cannot be compiled.
ERROR: syntax error at or near "CURSOR"
CONTEXT: invalid type name "SCROLL CURSOR FOR SELECT * FROM freeconet.alias
WHERE mask >"
compile of PL/pgSQL function "dummy" near line 3

Function that I want compile.
CREATE OR REPLACE FUNCTION freeconet.dummy (
) RETURNS INT8 AS $$
DECLARE
rowvar freeconet.ALIAS%ROWTYPE;
DECLARE curs1 SCROLL CURSOR FOR SELECT * FROM freeconet.alias WHERE
mask>='+4850X' LIMIT 100 ;
BEGIN
BEGIN

OPEN curs1;
FETCH curs1 INTO rowvar;

EXCEPTION
WHEN OTHERS THEN
RAISE WARNING '.... Kod bledu = %', SQLSTATE;
RETURN -1; /* blad danych */
END;
RAISE WARNING ' mask=%',rowvar.mask;
RETURN 1;
END;
$$ LANGUAGE 'plpgsql' VOLATILE;

#2Jim Nasby
Jim.Nasby@BlueTreble.com
In reply to: biuro@globeinphotos.com (#1)
Re: BUG #2494: SCROLL CURSOR does not worl

There's no such thing as a 'SCROLL CURSOR' in plpgsql:
http://www.postgresql.org/docs/8.1/interactive/plpgsql-cursors.html
I'm pretty sure that the default behavior would be scrollable.

We should probably add a TODO to bring the plpgsql cursor syntax inline
with what the backend supports.

On Fri, Jun 23, 2006 at 01:44:24PM +0000, Michal Szymanski wrote:

The following bug has been logged online:

Bug reference: 2494
Logged by: Michal Szymanski
Email address: biuro@globeinphotos.com
PostgreSQL version: 8.1
Operating system: Windows
Description: SCROLL CURSOR does not worl
Details:

Function with scroll cursor cannot be compiled.
ERROR: syntax error at or near "CURSOR"
CONTEXT: invalid type name "SCROLL CURSOR FOR SELECT * FROM freeconet.alias
WHERE mask >"
compile of PL/pgSQL function "dummy" near line 3

Function that I want compile.
CREATE OR REPLACE FUNCTION freeconet.dummy (
) RETURNS INT8 AS $$
DECLARE
rowvar freeconet.ALIAS%ROWTYPE;
DECLARE curs1 SCROLL CURSOR FOR SELECT * FROM freeconet.alias WHERE
mask>='+4850X' LIMIT 100 ;
BEGIN
BEGIN

OPEN curs1;
FETCH curs1 INTO rowvar;

EXCEPTION
WHEN OTHERS THEN
RAISE WARNING '.... Kod bledu = %', SQLSTATE;
RETURN -1; /* blad danych */
END;
RAISE WARNING ' mask=%',rowvar.mask;
RETURN 1;
END;
$$ LANGUAGE 'plpgsql' VOLATILE;

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

http://archives.postgresql.org

--
Jim C. Nasby, Sr. Engineering Consultant jnasby@pervasive.com
Pervasive Software http://pervasive.com work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461

#3Bruce Momjian
bruce@momjian.us
In reply to: Jim Nasby (#2)
Re: BUG #2494: SCROLL CURSOR does not worl

Added to TODO:

o Add support for WITH HOLD and SCROLL cursors

PL/pgSQL cursors should support the same syntax as
backend cursors.

---------------------------------------------------------------------------

Jim C. Nasby wrote:

There's no such thing as a 'SCROLL CURSOR' in plpgsql:
http://www.postgresql.org/docs/8.1/interactive/plpgsql-cursors.html
I'm pretty sure that the default behavior would be scrollable.

We should probably add a TODO to bring the plpgsql cursor syntax inline
with what the backend supports.

On Fri, Jun 23, 2006 at 01:44:24PM +0000, Michal Szymanski wrote:

The following bug has been logged online:

Bug reference: 2494
Logged by: Michal Szymanski
Email address: biuro@globeinphotos.com
PostgreSQL version: 8.1
Operating system: Windows
Description: SCROLL CURSOR does not worl
Details:

Function with scroll cursor cannot be compiled.
ERROR: syntax error at or near "CURSOR"
CONTEXT: invalid type name "SCROLL CURSOR FOR SELECT * FROM freeconet.alias
WHERE mask >"
compile of PL/pgSQL function "dummy" near line 3

Function that I want compile.
CREATE OR REPLACE FUNCTION freeconet.dummy (
) RETURNS INT8 AS $$
DECLARE
rowvar freeconet.ALIAS%ROWTYPE;
DECLARE curs1 SCROLL CURSOR FOR SELECT * FROM freeconet.alias WHERE
mask>='+4850X' LIMIT 100 ;
BEGIN
BEGIN

OPEN curs1;
FETCH curs1 INTO rowvar;

EXCEPTION
WHEN OTHERS THEN
RAISE WARNING '.... Kod bledu = %', SQLSTATE;
RETURN -1; /* blad danych */
END;
RAISE WARNING ' mask=%',rowvar.mask;
RETURN 1;
END;
$$ LANGUAGE 'plpgsql' VOLATILE;

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

http://archives.postgresql.org

--
Jim C. Nasby, Sr. Engineering Consultant jnasby@pervasive.com
Pervasive Software http://pervasive.com work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match

--
Bruce Momjian bruce@momjian.us
EnterpriseDB http://www.enterprisedb.com

+ If your life is a hard drive, Christ can be your backup. +