getRawClient: ()->
@pool.use()
enableTransactions: ()->
@transactionsEnabled = true
disableTransactions: ()->
@transactionsEnabled = false
openTransaction: (client)->
client.query('begin')
openSubTransaction: (client, name)->
client.query("savepoint \"#{name}\"")
commitTransaction: (client)->
client.query("commit")
commitSubTransaction: (client, name)->
client.query("release \"#{name}\"")
rollbackTransaction: (client)->
client.query("rollback")
rollbackSubTransaction: (client, name)->
client.query("rollback to \"#{name}\"")
class StubClient
constructor: (name)->
@name = name
query: (text)->
logger.trace("query client #{@name}: #{text}")
new Promise (res)->
setTimeout ->
res()
, 1