Re: Improper usage of MemoryContext in nodeSubplan.c for buildSubPlanHash() function. This maybe causes allocate memory failed.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Tao Ma" <feng_eden(at)163(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Improper usage of MemoryContext in nodeSubplan.c for buildSubPlanHash() function. This maybe causes allocate memory failed.
Date: 2010-07-28 04:55:39
Message-ID: 3494.1280292939@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

I wrote:
> "Tao Ma" <feng_eden(at)163(dot)com> writes:
>> This is a potential memory error in nodeSubplan.c or execGrouping.c
>> Using select '1'::TEXT IN ((SELECT '1'::NAME) UNION ALL SELECT '1'::NAME);
>> to reproduce this bug.
>> ...
>> To fix this problem, we can use another memory context to passin
>> BuildTupleHashTable() as the hashtable's tempcxt, or use other memory
>> context as hash table's tempcxt or other ways.

> Yeah, I think you're right --- we can't get away with reusing the
> innerecontext's per-tuple context for the hashtable temp contexts.
> The best solution is probably to make an additional context that
> does nothing but act as the hashtable temp context.

I've committed a fix along those lines. Thanks for the report!

regards, tom lane

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Mike Lewis 2010-07-28 05:20:38 Re: Performance Enhancement/Fix for Array Utility Functions
Previous Message Andrew Dunstan 2010-07-28 04:41:20 Re: PostGIS vs. PGXS in 9.0beta3