My only comment here is that while it may be more "list like" to pull a single item/row out via the __iter__ method, it is less natural for building efficient algorithms.  I wonder if we should make the default the thing that is more efficient at the cost of a minor ui inconvenience. After all it would be:

```
for chunk in DDesc:
  for row in chunk:
    do_something with row
```