Jaime Casanova <jaime@2ndquadrant.com> writes:
> not sure if you're wrong. but at the very least, you miss a
> heap_freetuple(oldtup) there, because get_catalog_object_by_oid()
Well, oldtup can be either a syscache copy or a heap tuple. I've been
looking at other call sites and they don't free their tuple either. So
I'm leaving it at that for now.
> no, that code is not unchanged because function
> get_ext_ver_list_from_catalog() comes from your patch.
Yes. Here's the relevant hunk:
***************
*** 997,1003 **** get_nearest_unprocessed_vertex(List *evi_list) * the versions that can be reached in one step from
thatversion. */ static List *
! get_ext_ver_list(ExtensionControlFile *control) { List *evi_list = NIL; int extnamelen =
strlen(control->name);
--- 1093,1099 ---- * the versions that can be reached in one step from that version. */ static List *
! get_ext_ver_list_from_files(ExtensionControl *control) { List *evi_list = NIL; int
extnamelen= strlen(control->name);
***************
So the content of the function has not changed. I'm not opposed to
trying to fix it, I just don't think it would be wise to do so as part
of the extension templates patch, as I do believe that the problem
should manifest itself in head too: it's the same code under a new
function's name.
Regards,
--
Dimitri Fontaine
http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support