| 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: | Whole Thread | Raw Message | 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
| 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 |