Skip to content

Commit

Permalink
Fix broken temporary backcompat shim for naughty _resolve_condition c…
Browse files Browse the repository at this point in the history
…allers

The 9b96f3d refactor undid all the backcompat shims that were introduced
in c0f4450. Reinstate the insanity until after 28...
  • Loading branch information
ribasushi committed Sep 16, 2014
1 parent e084cb2 commit 4f8c967
Showing 1 changed file with 17 additions and 2 deletions.
19 changes: 17 additions & 2 deletions lib/DBIx/Class/ResultSource.pm
Original file line number Diff line number Diff line change
Expand Up @@ -1865,12 +1865,17 @@ sub _resolve_relationship_condition {
$self->throw_exception("Arguments 'self_alias' and 'foreign_alias' may not be identical")
if $args->{self_alias} eq $args->{foreign_alias};

# TEMP
my $exception_rel_id = "relationship '$args->{rel_name}' on source '@{[ $self->source_name ]}'";

my $rel_info = $self->relationship_info($args->{rel_name})
# TEMP
# or $self->throw_exception( "No such $exception_rel_id" );
or carp_unique("Requesting resolution on non-existent relationship '$args->{rel_name}' on source '@{[ $self->source_name ]}': fix your code *soon*, as it will break with the next major version");

my $exception_rel_id = "relationship '$rel_info->{_original_name}' on source '@{[ $self->source_name ]}'";
# TEMP
$exception_rel_id = "relationship '$rel_info->{_original_name}' on source '@{[ $self->source_name ]}'"
if $rel_info;

$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};
Expand All @@ -1890,9 +1895,13 @@ sub _resolve_relationship_condition {
)
;

my $rel_rsrc = $self->related_source($args->{rel_name});
#TEMP
my $rel_rsrc;# = $self->related_source($args->{rel_name});

if (exists $args->{foreign_values}) {
# TEMP
$rel_rsrc ||= $self->related_source($args->{rel_name});

if (defined blessed $args->{foreign_values}) {

$self->throw_exception( "Objects supplied as 'foreign_values' ($args->{foreign_values}) must inherit from DBIx::Class::Row" )
Expand Down Expand Up @@ -1954,6 +1963,9 @@ sub _resolve_relationship_condition {
"The join-free condition returned for $exception_rel_id must be a hash reference"
) unless ref $jfc eq 'HASH';

# TEMP
$rel_rsrc ||= $self->related_source($args->{rel_name});

my ($joinfree_alias, $joinfree_source);
if (defined $args->{self_result_object}) {
$joinfree_alias = $args->{foreign_alias};
Expand Down Expand Up @@ -2141,6 +2153,9 @@ sub _resolve_relationship_condition {

next if $col_eqs->{$lhs} eq UNRESOLVABLE_CONDITION;

# TEMP
$rel_rsrc ||= $self->related_source($args->{rel_name});

# there is no way to know who is right and who is left in a cref
# therefore a full blown resolution call, and figure out the
# direction a bit further below
Expand Down

0 comments on commit 4f8c967

Please sign in to comment.