# _resolve_relationship_condition always returns qualified cols even in the
# case of join_free_condition, but nothing downstream expects this
- if (ref $res[0] eq 'HASH' and ($is_objlike[0] or $is_objlike[1]) ) {
+ if ($rc->{join_free_condition} and ref $res[0] eq 'HASH') {
$res[0] = { map
{ ($_ =~ /\.(.+)/) => $res[0]{$_} }
keys %{$res[0]}
$args->{condition} ||= $rel_info->{cond};
-# 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 ]}'" )
- unless defined blessed $args->{self_result_object};
+ $self->throw_exception( "Argument 'self_result_object' must be an object of class '@{[ $self->result_class ]}'" )
+ if (
+ exists $args->{self_result_object}
+ and
+ ( ! defined blessed $args->{self_result_object} or ! $args->{self_result_object}->isa($self->result_class) )
+ )
+ ;
- $self->throw_exception( "Object '$args->{self_result_object}' must be of class '@{[ $self->result_class ]}'" )
- unless $args->{self_result_object}->isa($self->result_class);
- }
+ my $rel_rsrc = $self->related_source($args->{rel_name});
if (exists $args->{foreign_values}) {
if (defined blessed $args->{foreign_values}) {
$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 ]}'"
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;
}
# there is no way to know who is right and who is left in a cref
# therefore a full blown resolution call
- # 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 },