This Source Code Form is subject to the terms of the Mozilla Public License,
v.2.0. If a copy of the MPL was not distributed with this file, You can obtain
one at http://mozilla.org/MPL/2.0/.
This module contains the a basic database interface that have minimal dependencies on internal modules.
It is intended to be reusable from the test suite.
Note that a commit may result in an exception.
The correct way to handle a commit that fail is to rollback. Or rather it is the easy way.
The other way would be to try the commmit at a later time.
For now though this mean that scope(success) db.commit should never be used.
Always use scope(failure) db.rollback. This ensures that a failed commit results in a rollback.
By combining this with spinSqlQuery it means that it will be retried at a later time.
The only acceptable dependency are:
* ../type.d
* ..backend/type.d
* ../database/type.d
* ../database/schema.d