Gevik Babakhani wrote:
I have allocated memory using: MemoryContextAlloc(TopMemoryContext,n *
sizeof(char*));
In pgsql/src/backend/utils/mmgr/README:142 is stated that memory allocated
using above should be freed manually, Is this correct? Or does the system
release everything allocated in TopMemoryContext automatically when exiting?
On backend exit, everything in TopMemoryContext, like all other
non-shared memory, is automatically released.
I looked around and found examples where memory allocated
using above is not freed! (datetime.c:3811, uhhh.. a bit confused here)
That palloc'd table in datetime.c is kept until backend exit, or until
it's replaced with a new table. If it's replaced with a new table, the
old one is explicitly pfree'd in that function:
/* Now safe to replace existing table (if any) */
if (timezonetktbl)
pfree(timezonetktbl);
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at
http://www.postgresql.org/about/donate