|
|
|
@ -12,7 +12,7 @@ |
|
|
|
|
<H1>Developer's Frequently Asked Questions (FAQ) for |
|
|
|
|
PostgreSQL</H1> |
|
|
|
|
|
|
|
|
|
<P>Last updated: Sat Dec 29 23:31:26 EST 2001</P> |
|
|
|
|
<P>Last updated: Thu Jan 3 03:13:44 EST 2002</P> |
|
|
|
|
|
|
|
|
|
<P>Current maintainer: Bruce Momjian (<A href= |
|
|
|
|
"mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR> |
|
|
|
@ -766,12 +766,12 @@ |
|
|
|
|
<I>pfree</I>() to allocate memory?</H3> |
|
|
|
|
|
|
|
|
|
<P><I>palloc()</I> and <I>pfree()</I> are used in place of malloc() |
|
|
|
|
and free() because we automatically free all memory allocated when |
|
|
|
|
a transaction completes. This makes it easier to make sure we free |
|
|
|
|
memory that gets allocated in one place, but only freed much later. |
|
|
|
|
There are several contexts that memory can be allocated in, and |
|
|
|
|
this controls when the allocated memory is automatically freed by |
|
|
|
|
the backend.</P> |
|
|
|
|
and free() because we find it easier to automatically free all |
|
|
|
|
memory allocated when a query completes. This assures us that all |
|
|
|
|
memory that was allocated gets freed even if we have lost track of |
|
|
|
|
where we allocated it. There are special non-query contexts that |
|
|
|
|
memory can be allocated in. These affect when the allocated memory |
|
|
|
|
is freed by the backend.</P> |
|
|
|
|
|
|
|
|
|
<H3><A name="2.6">2.6</A>) What is elog()?</H3> |
|
|
|
|
|
|
|
|
|