I noticed this problem while reviewing Tom’s patch [1]. In lsyscache.c, there are multiple places that get IndexAmRoutine by GetIndexAmRoutineByAmId(). Only one function get_opmethod_canorder() pfree the returned object, while the other 3 functions get_op_index_interpretation(), equality_ops_are_compatible() and comparison_ops_are_compatible() all call GetIndexAmRoutineByAmId() in for loops but without freeing the memory.
While these paths are not hot enough to cause leaks that matter in practice, I think for consistency, we should free the memory.
Чтобы сделать работу с сайтом удобнее, мы используем cookie и аналитический сервис «Яндекс.Метрика». Продолжая пользоваться сайтом, вы соглашаетесь с их использованием.