Dmitry Igrishin <dmitigr@gmail.com> writes: > Maybe I'm wrong, but anychar_typmodin() of > src/backend/utils/adt/varchar.c of PostgreSQL 12.1 does not pfree()s > the memory allocated by ArrayGetIntegerTypmods(). Probably, I'm > missing something. Could anybody please clarify on that?
It is a leak, in the sense that the pointer is unreferenced once the function returns. But we don't care, either here or in the probably thousands of other similar cases, because we don't expect this function to be run in a long-lived memory context. The general philosophy in the backend is that it's cheaper and far less error-prone to rely on memory context cleanup to reclaim (small amounts of) memory than to rely on manual pfree calls. You can read more about that in src/backend/utils/mmgr/README.