Trait diesel::connection::TransactionManager
[−]
[src]
pub trait TransactionManager<Conn: Connection> { fn begin_transaction(&self, conn: &Conn) -> QueryResult<()>; fn rollback_transaction(&self, conn: &Conn) -> QueryResult<()>; fn commit_transaction(&self, conn: &Conn) -> QueryResult<()>; fn get_transaction_depth(&self) -> u32; }
Manages the internal transaction state for a connection. You should not
interface with this trait unless you are implementing a new connection
adapter. You should use [Connection::transaction
][transaction],
[Connection::test_transaction
][test_transaction], or
[Connection::begin_test_transaction
][begin_test_transaction] instead.
Required Methods
fn begin_transaction(&self, conn: &Conn) -> QueryResult<()>
Begin a new transaction. If the transaction depth is greater than 0, this should create a savepoint instead. This function is expected to increment the transaction depth by 1.
fn rollback_transaction(&self, conn: &Conn) -> QueryResult<()>
Rollback the inner-most transcation. If the transaction depth is greater than 1, this should rollback to the most recent savepoint. This function is expected to decrement the transaction depth by 1.
fn commit_transaction(&self, conn: &Conn) -> QueryResult<()>
Commit the inner-most transcation. If the transaction depth is greater than 1, this should release the most recent savepoint. This function is expected to decrement the transaction depth by 1.
fn get_transaction_depth(&self) -> u32
Fetch the current transaction depth. Used to ensure that
begin_test_transaction
is not called when already inside of a
transaction.
Implementors
impl<Conn> TransactionManager<Conn> for AnsiTransactionManager where Conn: Connection,
Conn::Backend: UsesAnsiSavepointSyntax