Early termination of result set processing

With a custom SQL query that I have written in Tableau I noticed that the foreach loop in driver.d SQLExecuteImpl function, which traverses the result set of the query, terminates early and prevents the actual result to be returned to the application when the result data is received in the last batch retrieved from the server. The foreach construct calls the statement client's empty(), front(), and popfront() functions in order as expected, but the empty() function returns true before the last result (that contains the actual result of the query) is retrieved & processed with the front() call. 
I think the prevalent style in this project is `if (empty) {` i.e. spaces after the `if` and before the `{`. Also, if client code tries to `popFront` from an empty range it's in error. Did you mean this?

```d
if (processedAll_) {
    return;
}
assert(!empty);
```

That takes care of the corner case and still makes sure caller code is correct.