From: | Zhihong Yu <zyu(at)yugabyte(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | akapila(at)postgresql(dot)org, PostgreSQL Developers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: freeing bms explicitly |
Date: | 2022-03-21 22:13:18 |
Message-ID: | CALNJ-vR3dVBq3ARG0Hj1Q5vQB37OpabjeiW65yCxn7x5TwpeyQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Mon, Mar 21, 2022 at 3:05 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Zhihong Yu <zyu(at)yugabyte(dot)com> writes:
> >> I was looking at calls to bms_free() in PG code.
> >> e.g. src/backend/commands/publicationcmds.c line 362
> >> bms_free(bms);
> >> The above is just an example, there're other calls to bms_free().
> >> Since the bms is allocated from some execution context, I wonder why
> this
> >> call is needed.
> >>
> >> When the underlying execution context wraps up, isn't the bms freed ?
>
> Yeah, that's kind of pointless --- and the pfree(rfnode) after it is even
> more pointless, since it'll free only the top node of that expression
> tree. Not to mention the string returned by TextDatumGetCString, and
> whatever might be leaked during the underlying catalog accesses.
>
> If we were actually worried about transient space consumption of this
> function, it'd be necessary to do a lot more than this. It doesn't
> look to me like it's worth worrying about though -- it doesn't seem
> like it could be hit more than once per query in normal cases.
>
> regards, tom lane
>
Thanks Tom for replying.
What do you think of the following patch ?
Cheers
Attachment | Content-Type | Size |
---|---|---|
rfcolumn-free.patch | application/octet-stream | 534 bytes |
From | Date | Subject | |
---|---|---|---|
Next Message | Jimmy Yih | 2022-03-21 22:57:11 | Re: Concurrent deadlock scenario with DROP INDEX on partitioned index |
Previous Message | Nathan Bossart | 2022-03-21 22:12:05 | Re: Estimating HugePages Requirements? |