From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Zhihong Yu <zyu(at)yugabyte(dot)com> |
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:05:19 |
Message-ID: | 2403933.1647900319@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Nathan Bossart | 2022-03-21 22:12:05 | Re: Estimating HugePages Requirements? |
Previous Message | Tomas Vondra | 2022-03-21 21:54:38 | Re: logical decoding and replication of sequences |