X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FResultSource.pm;h=c598b1db2104a3c3e0d57327920cb5bdc208417c;hb=497d0451bd98892c7bc2228c5ca82ca8592a5558;hp=9470546acd319cdbf32a725add2d7fc55e2160c8;hpb=28ef9468343a356954f0e4dc6bba1b834a8b3c3c;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/ResultSource.pm b/lib/DBIx/Class/ResultSource.pm index 9470546..c598b1d 100644 --- a/lib/DBIx/Class/ResultSource.pm +++ b/lib/DBIx/Class/ResultSource.pm @@ -21,6 +21,7 @@ use DBIx::Class::_Util qw( dbic_internal_try fail_on_internal_call refdesc emit_loud_diag ); +use DBIx::Class::SQLMaker::Util qw( normalize_sqla_condition extract_equality_conditions ); use SQL::Abstract 'is_literal_value'; use Devel::GlobalDestruction; use Scalar::Util qw( blessed weaken isweak refaddr ); @@ -457,7 +458,7 @@ sub __emit_stale_metadata_diag { =head2 clone - $rsrc_instance->clone( atribute_name => overriden_value ); + $rsrc_instance->clone( atribute_name => overridden_value ); A wrapper around L inheriting any defaults from the callee. This method also not normally invoked directly by end users. @@ -1928,7 +1929,7 @@ sub _minimal_valueset_satisfying_constraint { $args->{columns_info} ||= $self->columns_info; - my $vals = $self->schema->storage->_extract_fixed_condition_columns( + my $vals = extract_equality_conditions( $args->{values}, ($args->{carp_on_nulls} ? 'consider_nulls' : undef ), ); @@ -1942,7 +1943,7 @@ sub _minimal_valueset_satisfying_constraint { $cols->{$args->{carp_on_nulls} ? 'undefined' : 'missing'}{$col} = undef; } else { - # we need to inject back the '=' as _extract_fixed_condition_columns + # we need to inject back the '=' as extract_equality_conditions() # will strip it from literals and values alike, resulting in an invalid # condition in the end $cols->{present}{$col} = { '=' => $vals->{$col} }; @@ -2304,7 +2305,7 @@ sub _resolve_relationship_condition { qw( columns relationships ) ; - my $equivalencies = $storage->_extract_fixed_condition_columns( + my $equivalencies = extract_equality_conditions( $args->{foreign_values}, 'consider nulls', ); @@ -2520,10 +2521,10 @@ sub _resolve_relationship_condition { and $ret->{join_free_condition} ne UNRESOLVABLE_CONDITION and - my $jfc = $storage->_collapse_cond( $ret->{join_free_condition} ) + my $jfc = normalize_sqla_condition( $ret->{join_free_condition} ) ) { - my $jfc_eqs = $storage->_extract_fixed_condition_columns($jfc, 'consider_nulls'); + my $jfc_eqs = extract_equality_conditions( $jfc, 'consider_nulls' ); if (keys %$jfc_eqs) { @@ -2563,7 +2564,7 @@ sub _resolve_relationship_condition { # (may already be there, since easy to calculate on the fly in the HASH case) if ( ! $ret->{identity_map} ) { - my $col_eqs = $storage->_extract_fixed_condition_columns($ret->{condition}); + my $col_eqs = extract_equality_conditions($ret->{condition}); my $colinfos; for my $lhs (keys %$col_eqs) {