[Bast-commits] r4672 -
trunk/DBIx-Class-Journal/lib/DBIx/Class/Schema
nothingmuch at dev.catalyst.perl.org
nothingmuch at dev.catalyst.perl.org
Tue Jul 29 22:31:41 BST 2008
Author: nothingmuch
Date: 2008-07-29 22:31:41 +0100 (Tue, 29 Jul 2008)
New Revision: 4672
Modified:
trunk/DBIx-Class-Journal/lib/DBIx/Class/Schema/Journal.pm
Log:
if journalling schema is not the main schema we need to call txn_do on that too
Modified: trunk/DBIx-Class-Journal/lib/DBIx/Class/Schema/Journal.pm
===================================================================
--- trunk/DBIx-Class-Journal/lib/DBIx/Class/Schema/Journal.pm 2008-07-29 20:10:01 UTC (rev 4671)
+++ trunk/DBIx-Class-Journal/lib/DBIx/Class/Schema/Journal.pm 2008-07-29 21:31:41 UTC (rev 4672)
@@ -172,7 +172,7 @@
my $jschema = $self->_journal_schema;
- my $code;
+ my $code = $user_code;
my $current_changeset = $jschema->current_changeset;
if ( !$current_changeset || $self->journal_nested_changesets )
@@ -187,13 +187,19 @@
# wrap the thunk with a new changeset creation
$code = sub {
- my $changeset = $jschema->journal_create_changeset( parent_id => $current_changeset );
- local $current_changeset_ref->{changeset} = $changeset->ID;
- $user_code->(@_);
- };
+ my $changeset = $jschema->journal_create_changeset( parent_id => $current_changeset );
+ local $current_changeset_ref->{changeset} = $changeset->ID;
+ $user_code->(@_);
+ };
+
}
- $self->next::method($code || $user_code);
+ if ( $jschema != $self ) {
+ my $inner_code = $code;
+ $code = sub { $jschema->txn_do($inner_code, @_) };
+ }
+
+ return $self->next::method($code, @args);
}
sub changeset_user
More information about the Bast-commits
mailing list