On Mon, May 17, 2021 at 6:13 PM Amit Kapila <amit.kapil...@gmail.com> wrote:
> On Fri, May 14, 2021 at 12:44 PM Amit Langote <amitlangot...@gmail.com> wrote:
> > On Thu, May 13, 2021 at 7:43 PM Amit Kapila <amit.kapil...@gmail.com> wrote:
> >
> > > Also, don't we need to free the
> > > entire map as suggested by me?
> >
> > Yes, I had missed that too.  Addressed in the updated patch.
> >
>
> + relentry->map = convert_tuples_by_name(indesc, outdesc);
> + if (relentry->map == NULL)
> + {
> + /* Map not necessary, so free the TupleDescs too. */
> + FreeTupleDesc(indesc);
> + FreeTupleDesc(outdesc);
> + }
>
> I think the patch frees these descriptors when the map is NULL but not
> otherwise because free_conversion_map won't free these descriptors.

You're right.  I have fixed that by making the callback free the
TupleDescs explicitly.

> BTW, have you tried this patch in back branches because I think we
> should backpatch this fix?

I have created a version of the patch for v13, the only older release
that has this code, and can see that tests, including the newly added
one, pass.

Both patches are attached.

--
Amit Langote
EDB: http://www.enterprisedb.com

Attachment: PG13-pgoutput-tupeconv-map-leak_v3.patch
Description: Binary data

Attachment: HEAD-pgoutput-tupeconv-map-leak_v3.patch
Description: Binary data

Reply via email to