Re: Cursor not getting all rows

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Cursor not getting all rows
Дата
Msg-id 810.1116352586@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Cursor not getting all rows  (Joseph Shraibman <jks@selectacast.net>)
Список pgsql-general
Joseph Shraibman <jks@selectacast.net> writes:
> I do this:

> BEGIN;
> SELECT count(*) FROM u, d WHERE u.id = d.id AND ... ;
> DECLARE cname CURSOR FOR SELECT u.field, d.field FROM u, d WHERE u.id =
> d.id AND ... ;

> At the end of the fetching if the number of fetched does not equal the
> number from the SELECT count(*) I print out a warning message.  It
> happens every once in a while.  Today it happened four times.

> How is this possible?  Because they are in the same transaction the
> count and the cursor should see the exact same data, right?

Not unless you are using SERIALIZABLE mode --- otherwise the cursor will
see whatever changes were committed during execution of the first SELECT.

            regards, tom lane

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: initdb: failed
Следующее
От: Scott Marlowe
Дата:
Сообщение: Re: Cursor not getting all rows