Changed in version 2.4: iterating over a named cursor fetches itersize records at time from the backend. Previously only one record was fetched per roundtrip, resulting in a large overhead.
> Because you are doing fetchall(). That is going to fetch a list of row > tuples. Either iterate over that list or iterate over the cursor: > > for row in cur_p: > print(row) > > For more info see: > http://initd.org/psycopg/docs/cursor.html
Where does that webpage say that I can use the cursor itself for iteration? I can't find it there. (OTOH it is clearly documented for the sqlite3 library).
Until now, with psycopg2 I have done it like this:
cur.execute(stmt) results = iter(cur.fetchone, None) for r in results: ... -- Please don't Cc: me privately on mailing lists and Usenet, if you also post the followup to the list or newsgroup. To reply privately _only_ on Usenet and on broken lists which rewrite From, fetch the TXT record for no-use.mooo.com.