Memory management with C aggregate

From: Ian Burrell <imb(at)rentrak(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Memory management with C aggregate
Date: 2004-07-09 20:06:38
Message-ID: 40EEFACE.5020207@rentrak.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

We have user-defined aggregates written in C running inside the server.
We are running into some memory management issues and wondering what
is the best way to solve the problem.

The state of the aggregates is a structure with a pointer to allocated
memory. The structure and memory are allocated in the
PortalMemoryContext and freed in the ffunc. We just discovered that the
ffunc function can be called multiple times with the same state on
certain queries. The double free causes a crash.

From what I could find, the proper way to handle this is let the memory
be freed when the memory context is freed. What is the right memory
context to be used to allocate the aggregate state?

- Ian

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2004-07-09 20:07:19 Re: Nested Transactions, Abort All
Previous Message Simon Riggs 2004-07-09 20:00:00 Re: Nested Transactions, Abort All