rMWd9f688698ce0: rdbms: clean up and refactor ResultWrapper classes changed iteration in ResultWrapper from 1-based to 0-based as an unintended side effect: previously, foreach ( $resultWrapper as $i => $row ) {} was roughly equivalent to for ( $i = 1, $row = ...; $i <= $resultWrapper->numRows(); $row = ..., $i++ ) {} and now it's roughly equivalent to for ( $i = 0, $row = ...; $i < $resultWrapper->numRows(); $row = ..., $i++ ) {}.
This has caused T226640: ReadingLists CI broken / T226762: [Bug] GET /data/lists doesn't include "next" in an incomplete response and might well affect other code. For a class that implements Traversable, the index range should be considered part of the public interface, so this is a B/C break and should be either announced as such or reverted. (Also, the behavior should be documented and there should be tests against it.) Since 0-based is more intuitive, even if the change was unintentional, I'll go ahead with the announcement route if no one objects for a few days.