Tom Lane [mailto:t...@sss.pgh.pa.us] writes:
> But at any rate, bottom line is that your problem is client-side not 
> server-side, and no amount of fooling with the function innards will change 
> it.

I wish it were. While monitoring memory on Linux and Windows machines I see 
that psql memory usage hardly changes, but PostgreSQL server memory usage 
increases steadily until the query stops. PostgreSQL server memory usage stays 
high until after the client drops the connection. This is definitely a case of 
the server holding onto memory until the client drops the connection.

In other case, when I let the query continue until memory is exhausted, the 
PostgreSQL server crashes with "out of memory" error, not the client.

When does the PostgreSQL server call pfree() after a C function has returned to 
the caller? All I've found in books and Google searches is:

"What makes palloc() special is that it allocates the memory in the current 
context and the whole memory is freed in one go when the context is destroyed."

What "context"? The connection? The transaction? A SQL statement? The function 
call?

John


-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to