I wonder if now is a good time to make ORM\ResultSet eager load its results instead of having it stream results individually. Doing this would mean we could drop the BufferedResultSet, and simplify/remove code for handling serialized result sets. Basically we would get less overall system complexity at the cost of increased memory use as results have to be fit into memory. However, using many of the CollectionTrait methods would also cause all results to be loaded into memory. I think the overall drawbacks to loading all the results at once are pretty minimal.

If people need a streaming API we still have the lower level database API for doing operations on large datasets.