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
PG13-pgoutput-tupeconv-map-leak_v3.patch
Description: Binary data
HEAD-pgoutput-tupeconv-map-leak_v3.patch
Description: Binary data