Обсуждение: BUG #2494: SCROLL CURSOR does not worl

Поиск
Список
Период
Сортировка

BUG #2494: SCROLL CURSOR does not worl

От
"Michal Szymanski"
Дата:
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;

Re: BUG #2494: SCROLL CURSOR does not worl

От
"Jim C. Nasby"
Дата:
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

Re: BUG #2494: SCROLL CURSOR does not worl

От
Bruce Momjian
Дата:
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. +