[Dbix-class] BUG IN DBIx::Class::Row::insert

Oleg Pronin syber.rus at gmail.com
Mon Oct 5 17:56:43 GMT 2009


There is a bug in DBIx::Class::Row::insert with strating a transaction
every time i insert object with inflated column, for example DateTime.

285:      my %related_stuff = (%{$self->{_relationship_data} || {}},
286:                           %{$self->{_inflated_column} || {}});
                                       ^^^^^^
                                     Why does my DateTime field is a
"related stuff" ? It is object's own property
...

322:      if (keys %related_stuff) {
323:        $rollback_guard ||= $source->storage->txn_scope_guard
324       }
                 ^^^^
                 This starts transaction.




Possible Fix ?

285:      my %related_stuff = %{$self->{_relationship_data} || {}};



Moreover, even if object has _relationship_data i think it's only up
to user to decide whether to use transaction or not.



More information about the DBIx-Class mailing list