X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FStorage.pm;h=604ad5b7e8ed936799f5caaf2c35914dfd826fb4;hb=00c937a24ecd01b75997dd3e0211f2377fcd84ff;hp=79064a46bb7b471f1bb131110719fc190335f2c0;hpb=adb3554a3f72bf9c9b267c5eb84a8401da64bf37;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Storage.pm b/lib/DBIx/Class/Storage.pm index 79064a4..604ad5b 100644 --- a/lib/DBIx/Class/Storage.pm +++ b/lib/DBIx/Class/Storage.pm @@ -264,10 +264,10 @@ sub txn_rollback { die "Virtual method!" } =head2 svp_begin -Arguments: $savepoint_name +Arguments: $savepoint_name? -Establishes a new savepoint of the specified name within the current -transaction. +Created a new savepoint using the name provided as argument. If no name +is provided, a random name will be used. =cut @@ -275,10 +275,11 @@ sub svp_begin { die "Virtual method!" } =head2 svp_release -Arguments: $savepoint_name +Arguments: $savepoint_name? -Destroy a savepoint, but keep the effects of the commands executed since -it's creation. +Release the savepoint provided as argument. If none is provided, +release the savepoint created most recently. This will implicitly +release all savepoints created after the one explicitly released as well. =cut @@ -286,9 +287,11 @@ sub svp_release { die "Virtual method!" } =head2 svp_rollback -Arguments: $savepoint_name +Arguments: $savepoint_name? -Rollback to the savepoint of the specified name. +Rollback to the savepoint provided as argument. If none is provided, +rollback to the savepoint created most recently. This will implicitly +release all savepoints created after the savepoint we rollback to. =cut @@ -296,9 +299,21 @@ sub svp_rollback { die "Virtual method!" } =for comment -=head2 txn_scope_guard +=head2 txn_scope_guard (EXPERIMENTAL) -Return an object that does stuff. +An alternative way of using transactions to C: + + my $txn = $storage->txn_scope_guard; + + $row->col1("val1"); + $row->update; + + $txn->commit; + +If a exception occurs, the transaction will be rolled back. This is still very +experiemental, and we are not 100% sure it is working right when nested. The +onus is on you as the user to make sure you dont forget to call +$C<$txn->commit>. =cut @@ -466,7 +481,8 @@ Old name for DBIC_TRACE =head1 SEE ALSO -L - reference storage inplementation using SQL::Abstract and DBI. +L - reference storage implementation using +SQL::Abstract and DBI. =head1 AUTHORS