Kill rel-exists sanity checks for 28, reinstate them later
Peter Rabbitson [Tue, 29 Jul 2014 08:44:41 +0000 (10:44 +0200)]
Something that simple allows RapidApp to pass its tests without modifications
in other words - worth the pain

lib/DBIx/Class/ResultSource.pm

index 4829904..7d172bd 100644 (file)
@@ -1863,7 +1863,9 @@ sub _resolve_relationship_condition {
   my $exception_rel_id = "relationship '$args->{rel_name}' on source '@{[ $self->source_name ]}'";
 
   my $rel_info = $self->relationship_info($args->{rel_name})
-    or $self->throw_exception( "No such $exception_rel_id" );
+# TEMP
+#    or $self->throw_exception( "No such $exception_rel_id" );
+    or carp_unique("Requesting resolution on non-existent $exception_rel_id: fix your code *soon*, as it will break with the next major version");
 
   $self->throw_exception("No practical way to resolve $exception_rel_id between two data structures")
     if exists $args->{self_result_object} and exists $args->{foreign_values};
@@ -1875,7 +1877,8 @@ sub _resolve_relationship_condition {
 
   $args->{condition} ||= $rel_info->{cond};
 
-  my $rel_rsrc = $self->related_source($args->{rel_name});
+# TEMP
+#  my $rel_rsrc = $self->related_source($args->{rel_name});
 
   if (exists $args->{self_result_object}) {
     $self->throw_exception( "Argument 'self_result_object' must be an object of class '@{[ $self->result_class ]}'" )
@@ -1893,6 +1896,8 @@ sub _resolve_relationship_condition {
       $args->{foreign_values} = { $args->{foreign_values}->get_columns };
     }
     elsif (! defined $args->{foreign_values} or ref $args->{foreign_values} eq 'HASH') {
+      # TEMP
+      my $rel_rsrc = $self->related_source($args->{rel_name});
       my $ci = $rel_rsrc->columns_info;
       ! exists $ci->{$_} and $self->throw_exception(
         "Key '$_' supplied as 'foreign_values' is not a column on related source '@{[ $rel_rsrc->source_name ]}'"
@@ -1938,6 +1943,8 @@ sub _resolve_relationship_condition {
 
       my ($joinfree_alias, $joinfree_source);
       if (defined $args->{self_result_object}) {
+        # TEMP
+        my $rel_rsrc = $self->related_source($args->{rel_name});
         $joinfree_alias = $args->{foreign_alias};
         $joinfree_source = $rel_rsrc;
       }
@@ -2111,6 +2118,8 @@ sub _resolve_relationship_condition {
 
       # there is no way to know who is right and who is left
       # therefore the ugly scan below
+      # TEMP
+      my $rel_rsrc = $self->related_source($args->{rel_name});
       $colinfos ||= $storage->_resolve_column_info([
         { -alias => $args->{self_alias}, -rsrc => $self },
         { -alias => $args->{foreign_alias}, -rsrc => $rel_rsrc },