Re: PGresult pointer and memory usage - Mailing list pgsql-general

From Martijn van Oosterhout
Subject Re: PGresult pointer and memory usage
Date
Msg-id 20050124220826.GF11438@svana.org
Whole thread Raw
In response to PGresult pointer and memory usage  (Jeff Davis <jdavis-pgsql@empires.org>)
List pgsql-general
From what I understand:

On Mon, Jan 24, 2005 at 12:14:09PM -0800, Jeff Davis wrote:
> When you do a PQexec call in libpq, does PostgreSQL produce the entire
> result in memory on the server side, and then does libpq hold the entire
> result in memory after it retrieves it?

The server sends the data straight and then forgets it, but the client
library stores all the results before returning.

> The only time that the server sends parts of the result at a time is
> with a cursor, right? And libpq always holds the data that it gets back,
> right?

In a sense. The result of a FETCH is the whole resultset for that
statement, but it keeps the query around for other FETCHes. I don't
believe it holds the entire result (although maybe with a sort...???)

Hope this helps,
--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a
> tool for doing 5% of the work and then sitting around waiting for someone
> else to do the other 95% so you can sue them.

Attachment

pgsql-general by date:

Previous
From: Jeff Davis
Date:
Subject: PGresult pointer and memory usage
Next
From: Christopher Browne
Date:
Subject: Re: Recursive queries