From: | Amit Khandekar <amitdkhan(dot)pg(at)gmail(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Hash join in SELECT target list expression keeps consuming memory |
Date: | 2018-03-19 06:55:06 |
Message-ID: | CAJ3gD9coxPJUwGPXAjHHCyjKg=JRcqkh3hTvzJPoLis1-dkX6Q@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 17 March 2018 at 00:47, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Amit Khandekar <amitdkhan(dot)pg(at)gmail(dot)com> writes:
>> If the SELECT target list expression is a join subquery, and if the
>> subquery does a hash join, then the query keeps on consuming more and
>> more memory. Below is such a query :
>
> Thanks for the report!
>
> I dug into this with valgrind, and found that the problem is that
> ExecHashTableCreate allocates some memory that isn't freed by
> ExecHashTableDestroy, specifically the per-hash-key function
> information. This is just dumb. We can keep that stuff in the
> hashtable's hashCxt instead, where it will get freed at the right time.
> The attached patch seems to fix it just by reordering the code.
I saw that you have now committed the fix and also backported it to
all supported branches.
Thanks !
-Amit Khandekar
EnterpriseDB Corporation
The Postgres Database Company
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2018-03-19 07:06:36 | Re: file cloning in pg_upgrade and CREATE DATABASE |
Previous Message | Heikki Linnakangas | 2018-03-19 06:27:16 | Re: Online enabling of checksums |