Let's say I have a table called :table, and a column called :col, and I want to go through all the records in the table and set the :col value to 0. I had been doing it like this: (defn update-db! [] (doseq [entry (fetch :table)] (update! :table entry (assoc entry :col 0))))
but the other day I noticed that this was mysteriously skipping over certain records, and not everything was getting updated. So I switched to this: (defn update-db! [] (doseq [entry (doall (fetch :table))] (update! :table entry (assoc entry :col 0)))) which worked just fine. I speculate that somehow the update process screws with whatever iteration process that fetch uses to deliver the records lazily. However, now my update process is limited by the number of records I can hold in memory. So, is there some sort of recipe for updating all records without first loading them all into memory? -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en