from 0.08191 - documentation was in fact incorrect, not the code
- Fix Sybase ASE IC::DateTime support (::Storage going out of sync
with new default format expected by DateTime::Format::Sybase)
+ - Fix a bug in update_all() resulting in the first row receiving a
+ different dataset than the subsequent ones
0.08192 2011-05-10 04:20 (UTC)
* Fixes
unless ref $values eq 'HASH';
my $guard = $self->result_source->schema->txn_scope_guard;
- $_->update($values) for $self->all;
+ $_->update({%$values}) for $self->all; # shallow copy - update will mangle it
$guard->commit;
return 1;
}
--- /dev/null
+use strict;
+use warnings;
+
+use Test::More;
+use lib qw(t/lib);
+use DBICTest;
+
+my $schema = DBICTest->init_schema();
+
+my $new_artist = $schema->resultset('Artist')->create({ name => 'new kid behind the block' });
+
+# see how many cds do we have, and relink them all to the new guy
+my $cds = $schema->resultset('CD');
+my $cds_count = $cds->count;
+cmp_ok($cds_count, '>', 0, 'have some cds');
+
+$cds->update_all({ artist => $new_artist });
+
+is( $new_artist->cds->count, $cds_count, 'All cds properly relinked');
+
+done_testing;