more error messages.
Marcus Ramberg [Tue, 7 Mar 2006 21:31:56 +0000 (21:31 +0000)]
lib/DBIx/Class/ResultSource.pm
lib/DBIx/Class/Row.pm

index 8b3863f..edeb5b2 100644 (file)
@@ -621,6 +621,7 @@ Specify here any attributes you wish to pass to your specialised resultset.
 
 sub resultset {
   my $self = shift;
+  $self->throw_exception('resultset does not take any arguments. If you want another resultset, call it on the schema instead.') if scalar @_;
   return $self->{_resultset} if ref $self->{_resultset} eq $self->resultset_class;
   return $self->{_resultset} = do {
     my $rs = $self->resultset_class->new($self, $self->{resultset_attributes});
index 33c8d19..83502cf 100644 (file)
@@ -132,6 +132,10 @@ sub delete {
     my $ident_cond = $self->ident_condition;
     $self->throw_exception("Cannot safely delete a row in a PK-less table")
       if ! keys %$ident_cond;
+    foreach my $column (keys %$ident_cond) {
+       $self->throw_exception("Can't delete the object unless it has loaded the primary keys")
+       unless exists $self->{_column_data}{$column};
+    }
     $self->result_source->storage->delete(
       $self->result_source->from, $ident_cond);
     $self->in_storage(undef);