Merge 'trunk' into 'DBIx-Class-C3'
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / PK.pm
index 3dba00d..ab135e0 100644 (file)
@@ -98,8 +98,6 @@ sub discard_changes {
   }
   delete @{$self}{keys %$self};
   @{$self}{keys %$reload} = values %$reload;
-  #$self->store_column($_ => $reload->get_column($_))
-  #  foreach keys %{$self->_columns};
   return $self;
 }
 
@@ -136,10 +134,18 @@ sub ID {
 
 sub _create_ID {
   my ($class,%vals) = @_;
+  return undef unless 0 == grep { !defined } values %vals;
   $class = ref $class || $class;
   return join '|', $class, map { $_ . '=' . $vals{$_} } sort keys %vals;    
 }
 
+sub ident_condition {
+  my ($self) = @_;
+  my %cond;
+  $cond{$_} = $self->get_column($_) for $self->primary_columns;
+  return \%cond;
+}
+
 1;
 
 =back