From: Robert Klemme Date: 2007-06-05T23:25:06+09:00 Subject: Re: Asking for style critics: Collecting the result of a query On 05.06.2007 16:12, Ronald Fischer wrote: > May I ask some kind soul to criticize the following piece of code? > I don't have that much experience with Ruby yet, but I feel I could > do it simpler than that. > > Problem: Fetch result of a query (it happens to be a SQL query to a > database, but the essential point here is that I need to generate > the resulting lines piecewise, each iteration returning the next > row as an array of values). The result should be returned as a > matrix (i.e. array of arrays). In practice, the number of rows returned > will be well below 1000, each row containing around 10 items. > > Here is my code: > > def fetch_result(querystring) > result=[] > qres = dbhandle.query(qstr) > while row = fetch_result.fetch_row # deliver next row > result.push row # add row to the result array - is this OK? > end > result # return result array > end > > I suspect there might be an overhead in appending to an array > new rows piecewise as I'm doing it here. Is there a better way > to do it? > > Ronald Your sample seems to be missing something: Where does "fetch_result" come into existence? And why don't you use "qres"? Attempting to answer your question, if you just append rows without modification you might as well do fetch_result.to_a. Kind regards robert