Now that I think about that, just using #each would do the right thing, I 
believe, provided DO doesn't load the entire result set into memory.  That's 
the main question.


Il giorno 27/feb/2012, alle ore 09:07, Chris Corbyn ha scritto:

> And how about you read the question, Francesco, rather than being rude and 
> condescending?
> 
> Brian is looking for a way to get the results without loading them all at 
> once, not simply how to query the data store.  If the query returned 3 
> million rows, DataObjects would return all 3 mil at once, rather than one at 
> a time.
> 
> Maybe you didn't mean to sound rude, but you did.
> 
> Brian, looking at the DataObjects code, it appears you can invoke next! 
> yourself, but I'm not clear if the result set is buffered or entirely loaded 
> into memory.  Here's the implementation of #each, so you can see what's going 
> on when you iterate normally:
> 
> https://github.com/datamapper/do/blob/master/data_objects/lib/data_objects/reader.rb#L33-44
> 
> It's a bit clunky (call #next!, then fetch #fields and #values and zip them 
> together).
> 
> Chris
> 
> 
> Il giorno 27/feb/2012, alle ore 08:19, Francesco Vollero ha scritto:
> 
>> On Sat, Feb 25, 2012 at 3:12 AM, Brian Stokes <bsto...@gmail.com> wrote:
>>> I have a complicated reporting query that is just much easier for me to deal
>>> with (given our models) as a raw sql query, which I put inside a model and 
>>> want
>>> to return as an array of hashes.
>>> 
>>> Got that working. But I get all the rows at once, and I'm worried about 
>>> memory.
>>> Is there a way, ala DBI module, to loop through the rows from the db handle 
>>> as a
>>> result set?
>>> 
>> 
>> I suppose you usually don't read the documentation of the libraries
>> you're using... I'm saying that, because if you go in this page [1]
>> and search for title: "Talking directly to your data-store" you will
>> find this solution:
>> 
>> zoos = repository(:default).adapter.select('SELECT name, open FROM
>> zoos WHERE open = 1')
>> 
>> But to not let you miss all the fun, good reading and next time: RTFM.
>> 
>> 
>>> while row=sth.fetch do
>>>   p row
>>> end
>>> 
>>> Thanks!
>>> 
>> It's a pleasure to help,
>> Francesco
>> 
>> 
>> [1] http://datamapper.org/docs/find.html
>>> 
>>> 
>>> --
>>> You received this message because you are subscribed to the Google Groups 
>>> "DataMapper" group.
>>> To post to this group, send email to datamapper@googlegroups.com.
>>> To unsubscribe from this group, send email to 
>>> datamapper+unsubscr...@googlegroups.com.
>>> For more options, visit this group at 
>>> http://groups.google.com/group/datamapper?hl=en.
>>> 
>> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "DataMapper" group.
>> To post to this group, send email to datamapper@googlegroups.com.
>> To unsubscribe from this group, send email to 
>> datamapper+unsubscr...@googlegroups.com.
>> For more options, visit this group at 
>> http://groups.google.com/group/datamapper?hl=en.
>> 
> 

-- 
You received this message because you are subscribed to the Google Groups 
"DataMapper" group.
To post to this group, send email to datamapper@googlegroups.com.
To unsubscribe from this group, send email to 
datamapper+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/datamapper?hl=en.

Reply via email to