Greetings,
The documentation for Cursors at
http://www.postgresql.org/docs/9.2/static/plpgsql-cursors.html says that:

"Rather than executing a whole query at once, it is possible to set up a
*cursor* that encapsulates the query, and then read the query result a few
rows at a time. One reason for doing this is to avoid memory overrun when
the result contains a large number of rows"

I'm assuming the memory overrun mentioned here is the memory of the client
process connecting to postres. I think when a cursor ref is returned, say
from a function, the query needs to be completed and the results must be
ready for the cursor to move forward.

If that is the case, there must be a temporary table, presumably with one
or more parameters to adjust its size, (location/tablespace?) etc..

Is this how cursors work internally? I can't imagine the complexity of
managing cursor operations in anything other than extremely simple sql
queries.

Any comments and/or pointers to documentation which explains this would be
much appreciated.

Best regards
Seref

Reply via email to