…the proxy class used by `with()`.
* `svp()` no longer throws an exception whe used with an RDBMS that doesn't support savepoints. In such situations, savepoints are treated as a no-op, and thus the transactional behavior of `svp()` becomes the same as `txn()`. * Moved up the discussion of calling `svp()` outside of a transaction in the documentation.
…svp()` are no longer passed on to the execution of the block, since they are immediately available to the closure, anyway. This simplifies things for integrated exception handling.
Users can just use `svp()` when that's what they mean. I think I'll just wait to see what kind of pushback I get from the DBIx::Class folks before adding something like this. They may not need it at all, and no one else is likely to.
I think it'd be best done by passing another code ref to `run()` and friends, which would work nicely with Try::Tiny. Also removed the to-do about exception objects. There is no place that the code dies with a string, it simply rethrows exceptions from the blocks. And because those exceptions end in a newline (when created via `die $string`, becaus Perl adds a newline after the file and line number), it's context should always be correct.
Removed the undocumented `savepoint()`, `release()`, and `rollback_to()` methods from DBIx::Connector, since those methods are in the drivers, and so were redundant.
Due to conversation with mst, who points out that it's the caching in Apache::DBI and `connect_cached()` that lead to action-at-a-distance bugs. DBIx::Connector is now about maintaining a connection across forks and threads. Caching should be handled elsewhere.
* There are now only three block methods: `run()`, `txn()`, and `svp()`. * By default, they neither ping nor fixup. * Pass "ping" or "fixup" as the first argument to change that. * Also support "no_ping" as the default. May or may not document that. * Ripped out all the docs for the old methods. Next up: * Documentation updates. * Removing caching. * Adding a decorator to set a different default mode for the block methods.