backend grows during cursor/select/fetch (memory leak?)

Поиск
Список
Период
Сортировка
От Jim Mercer
Тема backend grows during cursor/select/fetch (memory leak?)
Дата
Msg-id 20000104170822.M4188@reptiles.org
обсуждение исходный текст
Список pgsql-general
i have a table like:

CREATE TABLE testtbl
(
somestr      varchar(20),
someint      int4,
somedate     abstime
);

it has some 6 million records in it.

if i do the following:

BEGIN WORK;
DECLARE cursorname CURSOR FOR SELECT somestr, someint, somedate FROM testtbl;
FETCH FORWARD 1000 IN cursorname;
(skip out and check the size of the backend process)
FETCH FORWARD 1000 IN cursorname;
FETCH FORWARD 1000 IN cursorname;
FETCH FORWARD 1000 IN cursorname;
(skip out and check the size of the backend process)
CLOSE cursorname;
END WORK;

the size of the backend grows to something, and doesn't grow much, or at all
between the first and second checks.

if the SELECT is changed to:

  SELECT somestr, somedate, someint, somedate + timespan(someint)

the backend starts to grow, especially after fetching forward 10000 or so
records.

is this a memory leak?

is there another way to stage the query (basically adding seconds to a date for each record)?

this is on postgresql-6.5.3 on FreeBSD 3.x

--
[ Jim Mercer                 jim@reptiles.org              +1 416 506-0654 ]
[          Reptilian Research -- Longer Life through Colder Blood          ]
[  Don't be fooled by cheap Finnish imitations; BSD is the One True Code.  ]

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

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: [GENERAL] Future of PostgreSQL
Следующее
От: Charles Martin
Дата:
Сообщение: please help me recover from duplicate key in unique index