Re: BUG #5516: Memory grows up problem

From: Greg Stark <gsstark(at)mit(dot)edu>
To: Yuhui <xingyuhui(at)gmail(dot)com>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #5516: Memory grows up problem
Date: 2010-06-21 14:59:16
Message-ID: AANLkTimUX91BsPblsNHTxiEYlaDWbOGbncMlz_w5j8WA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Mon, Jun 21, 2010 at 12:41 PM, Yuhui <xingyuhui(at)gmail(dot)com> wrote:
>
> The following bug has been logged online:
>
> Bug reference:      5516
> Logged by:          Yuhui
> Email address:      xingyuhui(at)gmail(dot)com
> PostgreSQL version: 8.3,8.2,8.1
> Operating system:   Linux,Windows
> Description:        Memory grows up problem
> Details:
>
> Do the follow setp to reproduce the problem:
> 1,
> CREATE TABLE mem_leak(A INT, B char(50) default 'abcdefg');
> 2,
> INSERT INTO mem_leak(a) VALUES(generate_series(1,200000000));
>
> The memory which the execution process occupation will grows larger and
> larger until all the memory is gone or the process is over or the process is
> killed by the os.

I'm afraid that just how set-returning-functions like
generate_series() worked prior to 8.4. They build a result set in
memory for all their result records.

> If in create table statementthe "B char(50)" is changed to "B varchar(50)"
> or delete the "default 'abcdefg'" the memory will not grow anymore.
>
> The problem is not happen in the 8.4 above version.

There are lots of improvements in each version. Not every one can be
back patched as a bug fix. Definitely not major api changes like this.

--
greg

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2010-06-21 15:51:14 Re: BUG #5516: Memory grows up problem
Previous Message Tom Lane 2010-06-21 14:08:47 Re: Bug in PL/pgSQL FOR cursor variant