Reset result is from last step; looking at it was probably causing
spurious failures and busy-timeouts.
Transaction completion relies on statements being reset reliably.
Loading `db/sqlite3' no longer raises an exception if
the SQLite library isn't found. Instead, `sqlite3-connect'
raises an exception, while `sqlite3-available?' reports
whether it will work.
The dynamic test allows the documentation-help system
to continue to work if SQLite3 is not available. Currently,
though, `raco setup' still insists on using SQLite3 to
build the database of documented tags.
Other major changes:
- pg code now uses only binary format
- pg timestamptz now always UTC (tz = 0), added doc section
- added contracts to most pg "can't-convert" errors
MySQL:
- support multi-packet data rows
- fixed very old length-coding bug (24 vs 32 bit length)
- support large params via long-data packets
- 'any' pseudo-type for parameters
- distinguish 'blob'/'text', 'var-string'/'var-binary'
- read 'text' results as string, not bytes
SQLite3:
- enabled sql types tests
In some cases, statements were disappearing from statement-table
without being finalized; this makes disconnect fail.
(I was only able to produce the problem when the db lib was
instantiated in a sub custodian that is later shutdown....
like the way the rackunit gui runs the test suite.)