On 26/04/2013 17:07, Claudio Freire wrote:
On Fri, Apr 26, 2013 at 12:06 PM, Werner <werner.bru...@sfr.fr> wrote:
On 26/04/2013 16:41, alonn wrote:
so not to load too much into memory I should do something like:

for i in session.query(someobject).filter(id>something)
     print i

I'm guessing the answer is no, because of the nature of sql, but I'm not
an expert so I'm asking.
yes you can, check out the doc for querying, e.g. the following if you use
the ORM.

http://sqlalchemy.readthedocs.org/en/rel_0_8/orm/tutorial.html#querying

Not entirely, if you don't use yield_per (as shown in the docs in
fact, but worth mentioning).

Seeing query:

if self._yield_per:
     fetch = cursor.fetchmany(self._yield_per)
     if not fetch:
         break
else:
     fetch = cursor.fetchall()

Not only that, but also all rows are processed and saved to a local
list, so all instances are built and populated way before you get the
first row. That is, unless you specify yield_per.
Oops, thanks for correcting me.
Werner

--
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to