X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FOrdered.pm;h=6c7446fd02fcb61ef4cdddbf75da006c979fb889;hb=26283ee38f220f6c6bae720ea5a189c9c0f47f6f;hp=be06d3b21f33276f2a797ee2ed9ad771c36dcd45;hpb=87b4a87703747efd8a8d785a118d30647596c8ae;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Ordered.pm b/lib/DBIx/Class/Ordered.pm index be06d3b..6c7446f 100644 --- a/lib/DBIx/Class/Ordered.pm +++ b/lib/DBIx/Class/Ordered.pm @@ -434,10 +434,7 @@ if multiple grouping columns are in use. sub move_to_group { my( $self, $to_group, $to_position ) = @_; - $self->throw_exception ('move_to_group() expects a group specification') - unless defined $to_group; - - # if we're given a string, turn it into a hashref + # if we're given a single value, turn it into a hashref unless (ref $to_group eq 'HASH') { my @gcols = $self->_grouping_columns; @@ -471,6 +468,7 @@ sub move_to_group { my @original_values = $cursor->next; $self->set_inflated_columns ({ %values, map { $_ => shift @original_values } (@dirty_cols) }); + delete $self->{_dirty_columns}{$_} for (@dirty_cols); } if ($self->_is_in_group ($to_group) ) { @@ -563,7 +561,7 @@ sub update { # these steps are necessary to keep the external appearance of # ->update($upd) so that other things overloading update() will # work properly - my %original_values = $self->get_inflated_columns; + my %original_values = $self->get_columns; my %existing_changes = $self->get_dirty_columns; # See if any of the *supplied* changes would affect the ordering