From: Peter Rabbitson Date: Tue, 29 Jul 2014 08:44:41 +0000 (+0200) Subject: Kill rel-exists sanity checks for 28, reinstate them later X-Git-Tag: v0.082800~92 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=c0f445097;hp=08ac7648665ed86e88b2a752b31e8a34a8552dc7;p=dbsrgits%2FDBIx-Class.git Kill rel-exists sanity checks for 28, reinstate them later Something that simple allows RapidApp to pass its tests without modifications in other words - worth the pain --- diff --git a/lib/DBIx/Class/ResultSource.pm b/lib/DBIx/Class/ResultSource.pm index 4829904..7d172bd 100644 --- a/lib/DBIx/Class/ResultSource.pm +++ b/lib/DBIx/Class/ResultSource.pm @@ -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 },