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};
$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 ]}'" )
$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;
}
next if $col_eqs->{$lhs} eq UNRESOLVABLE_CONDITION;
my ($rhs) = @{ is_literal_value( $ret->{condition}{$lhs} ) || next };
- # there is no way to know who is right and who is left
- # therefore the ugly scan below
+ # 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 },
]);
- my ($l_col, $l_alias, $r_col, $r_alias) = map {
- ( reverse $_ =~ / ^ (?: ([^\.]+) $ | ([^\.]+) \. (.+) ) /x )[0,1]
- } ($lhs, $rhs);
+ my ($l_col, $r_col) = map { $_ =~ / ([^\.]+) $ /x } ($lhs, $rhs);
if (
$colinfos->{$l_col}