Re: BUG #14275: cursor's variable in pgsql doesn't respect scope

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: BUG #14275: cursor's variable in pgsql doesn't respect scope
Дата
Msg-id CAFj8pRA3Y8xRhuOY1twUN2X_gt0dTtp0GHodiTmYi9rDpVY6XA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: BUG #14275: cursor's variable in pgsql doesn't respect scope  ("klimych@tut.by" <klimych@tut.by>)
Ответы Re: BUG #14275: cursor's variable in pgsql doesn't respect scope
Список pgsql-bugs
2016-08-04 15:03 GMT+02:00 klimych@tut.by <klimych@tut.by>:

> Thank you!
> Sorry, I should read the documentation more carefully (athough I didnt't
> expect to find explanation of such behaviour in "Returning Cursors"
> section, as well as I didn't belive such behaviour could be made on
> purpose).
> And thanks again for workaround! It seems to be the only way to use
> cursors in pl/pgsql (the weirdest thing I've ever seen, I should say)
>

I agree so this is little bit strange - it looks like workaround of some
historical limit of SPI. It is too late to change. But it has some
advantage. Postgres can't to pass parameters by ref. With named cursors you
can do it.

Regards

Pavel


>
> 03.08.2016, 16:03, "Andrew Gierth" <andrew@tao11.riddles.org.uk>:
> >>>>>>  "klimych" == klimych <klimych@tut.by> writes:
> >
> >  klimych> Executing of the code gives error "cursor "cur" already in
> >  klimych> use".
> >
> > The cursor name (portal name) is global to the session, and for a bound
> > cursor it defaults to the name of the cursor variable:
> >
> > 40.7.3.5. Returning Cursors
> >
> >   [...]
> >
> >   Note: A bound cursor variable is initialized to the string value
> >   representing its name, so that the portal name is the same as the
> >   cursor variable name, unless the programmer overrides it by assignment
> >   before opening the cursor. But an unbound cursor variable defaults to
> >   the null value initially, so it will receive an
> >   automatically-generated unique name, unless overridden.
> >
> > It's a bit ugly, but you can do
> >
> > declare
> >   cur for select 1;
> > begin
> >   cur := null; -- force a unique generated portal name
> >   open cur;
> >   //...
> >
> > --
> > Andrew (irc:RhodiumToad)
>
>
> --
> Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-bugs
>

В списке pgsql-bugs по дате отправления:

Предыдущее
От: "David G. Johnston"
Дата:
Сообщение: Re: [BUGS] Return value error of‘to_timestamp’
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: BUG #14275: cursor's variable in pgsql doesn't respect scope