Bugfixes, optimisations
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Row.pm
index 38f6a82..9f01ded 100644 (file)
@@ -33,7 +33,8 @@ sub new {
   if ($attrs) {
     $new->throw("attrs must be a hashref" ) unless ref($attrs) eq 'HASH';
     while (my ($k, $v) = each %{$attrs}) {
-      $new->store_column($k => $v) if exists $class->_columns->{$k};
+      die "No such column $k on $class" unless exists $class->_columns->{$k};
+      $new->store_column($k => $v);
     }
   }
   return $new;
@@ -209,7 +210,7 @@ sub set_column {
 
 =item set_columns
 
-  my $copy = $orig->copy({ $col => $val, ... });
+  my $copy = $orig->set_columns({ $col => $val, ... });
 
 Set more than one column value at once.
 
@@ -251,7 +252,7 @@ sub _row_to_object {
   my ($class, $cols, $row) = @_;
   my %vals;
   $vals{$cols->[$_]} = $row->[$_] for 0 .. $#$cols;
-  my $new = $class->new(\%vals);
+  my $new = bless({ _column_data => \%vals }, ref $class || $class);
   $new->in_storage(1);
   return $new;
 }