sys.db.ResultSet over an oxmysql reply.
Two shapes come out of OxMysqlConnection.request(): a SELECT-style
call (forRows) gets a Lua array of row tables, string-keyed by column
name; an INSERT/UPDATE-style call (forAffected) gets a plain scalar
(insert id / affected row count), wrapped here into a rowless result set
whose length reports that scalar — matching how sys.db.Manager
(the record-macros haxelib) expects request() to behave for both
statement kinds. There's no live cursor or streaming: the whole reply
already arrived over the exports boundary by the time this exists, so
this is just Haxe-side bookkeeping over an in-memory table.
The read cursor starts pointing at the first row rather than before it,
so getResult/getIntResult/getFloatResult work without an explicit
next() call first (this matches sys.db.Manager.unsafeCount(), which
calls getIntResult(0) directly on a fresh result set).