BUG #4677: memory growth

Поиск
Список
Период
Сортировка
От aiwaniuk
Тема BUG #4677: memory growth
Дата
Msg-id 200902261515.n1QFFspG020306@wwwmaster.postgresql.org
обсуждение исходный текст
Ответы Re: BUG #4677: memory growth
Список pgsql-bugs
The following bug has been logged online:

Bug reference:      4677
Logged by:          aiwaniuk
Email address:      aiwaniuk@instytut.com.pl
PostgreSQL version: >8.0
Operating system:   linux
Description:        memory growth
Details:

i postgres version 8.2, 8.3 and probobly 8.1 there is problem with running
VOLATILE  plpgsql function with begin - exception checking that performs
other VOLATILE  plpgsql function. if either, first or second performing
removed, problem doesn't shows. here's an example

CREATE FUNCTION info.f()
  RETURNS void AS
$BODY$
DECLARE
  tmp text;
BEGIN
  -- do anything
  tmp = md5(random()::text) || md5(random()::text);
  RETURN;
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE;

CREATE or replace FUNCTION info.memory_growth(i_max integer)
  RETURNS integer AS
$BODY$
DECLARE
  i integer;
BEGIN
  i = 0;
  WHILE  i < i_max  LOOP

    BEGIN
      PERFORM info.f();
    EXCEPTION
      WHEN OTHERS THEN
        --
    END;

    PERFORM info.f();

    i = i + 1;
  END LOOP;

  RETURN i;
END;$BODY$
  LANGUAGE 'plpgsql' VOLATILE;

after running
select info.memory_growth(100000);

please take a look how's memory of client process grows. is there some
logical problem how functions are create ?

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

Предыдущее
От: 田中 裕一
Дата:
Сообщение: Re: BUG #4674: Unable to open lob
Следующее
От: Tom Lane
Дата:
Сообщение: Re: BUG #4677: memory growth