Branch Coverage

blib/lib/DBIx/Class/ResultSource.pm
Criterion Covered Total %
branch 190 262 72.5


line true false branch
155 29472 0 defined $_->{'weakref'} ? :
160 89213 12154 if ref $class
193 89212 12155 if (length ref $ancestor and my $ancestor_slot = $$rsrc_registry{my $ancestor_addr = &refaddr($ancestor)})
225 2712 605490 unless $self->{$_}
228 904 201830 unless $self->{$_}
238 0 0 defined $_->{'weakref'} ? :
250 74602 1 if (defined $_[2] xor defined $_[0]{$_[1]} or defined $_[2] and (length ref $_[2] xor length ref $_[0]{$_[1]}) || length ref $_[2] || $_[2] ne $_[0]{$_[1]})
316 2 44 if $cs =~ /^ \Qat $fr[1] line $fr[2]\E (?: $ | \n )/x and $fr[3] =~ s/.+:://
326 2 7 @fr ? :
342 4 907489 if not $_[0]{'__in_rsrc_setter_callstack'} and $_[0]{'__metadata_divergencies'}{$_[1]}
354 1 324 if defined wantarray
369 21764 309267 if (defined $val and length $val and not defined &blessed($val) and not ${"${val}::__LOADED__BY__DBIC__CAG__COMPONENT_CLASS__";})
390 0 4 unless $_[0]{'__metadata_divergencies'}{$_[1]}
403 0 4 unless @fr
423 4 0 @fr && $fr[3] =~ s/.+::// ? :
447 2 2 $by && $_[0]{'__encountered_divergencies'}{$by}++ ? :
487 89212 0 length ref $self ? :
51318 37894 @_ == 1 && ref $_[0] eq 'HASH' ? :
1009 2 18247 unless my(@pcols) = $self->primary_columns
1024 0 15023 if @too_many
1171 258 258 if (not @constraints % 2 and grep {ref $_ ne 'ARRAY';} @constraints) { }
1216 269 2448 if ref $name eq 'SCALAR'
1359 0 0 if ($class and $class->can('sqlt_deploy_hook'))
1366 0 0 if (my $hook = $self->sqlt_deploy_callback)
1494 0 14222 if scalar @_
1593 51524 67182 if (@_ > 1) { }
1598 92 67090 unless ($_[0]->get_rsrc_instance_specific_attribute('schema'))
1605 59 33 if $_[0]{'_detached_thaw'}
1846 1 989 unless $our_resolved_relcond->{'identity_map_matches_condition'}
1860 7 8887 if $other_rel eq $rel and $self == $other_rsrc
1909 5732 3155 unless $roundtripped_rsrc = &dbic_internal_try(sub { $other_rsrc->related_source($other_rel); } ) and $our_registered_source_name && ($our_registered_source_name eq $roundtripped_rsrc->source_name || '') || $our_result_class eq $roundtripped_rsrc->result_class and my $their_resolved_relcond = &dbic_internal_try(sub { $other_rsrc->resolve_relationship_condition('rel_name', $other_rel, ('foreign_alias', "!!!\377()!!!_DUMMY_FOREIGN_ALIAS_SHOULD_NEVER_BE_SEEN_IN_USE_!!!()\377!!!", 'self_alias', "!!!\376()!!!_DUMMY_SELF_ALIAS_SHOULD_NEVER_BE_SEEN_IN_USE_!!!()\376!!!")); } )
1926 2041 556 if $their_resolved_relcond->{'identity_map_matches_condition'} and keys %{$$our_resolved_relcond{'identity_map'};} == keys %{$$their_resolved_relcond{'identity_map'};} and &serialize($our_resolved_relcond->{'identity_map'}) eq &serialize({reverse(%{$their_resolved_relcond->{'identity_map'};})})
1942 566 146 ref $cols eq 'HASH' ? :
1947 0 901 unless $set and @$set
1950 230 886 unless $colinfos->{$_} and not $colinfos->{$_}{'is_nullable'}
1962 0 3231 ref $_[0] eq 'HASH' ? :
1968 236 2995 $args->{'carp_on_nulls'} ? :
1973 2822 1414 if (not exists $vals->{$col} or ($vals->{$col} || '') eq \'1 = 0') { }
2 1412 elsif (not defined $vals->{$col}) { }
1977 2 0 $args->{'carp_on_nulls'} ? :
1989 1408 6 unless $args->{'columns_info'}{$col}{'_filter_info'}
4 4232 if not $cols->{'missing'} && exists $cols->{'missing'}{$col} and keys %{{} unless $args->{'columns_info'}{$col}{'_filter_info'};}
1996 1962 1269 if $cols->{'missing'}
2002 2 1267 if $cols->{'fc'}
2004 2 1265 if ($cols->{'undefined'} and not $ENV{'DBIC_NULLABLE_KEY_NOWARN'})
2018 1267 1267 unless $cols->{$_}
2026 0 2442 unless ref $seen eq 'HASH'
2029 0 2442 unless ref $jpath eq 'ARRAY'
2034 417 2025 if (not defined $join && length $join) { }
534 1491 elsif (ref $join eq 'ARRAY') { }
280 1211 elsif (ref $join eq 'HASH') { }
0 1211 elsif (ref $join) { }
2048 0 277 unless my $rel_info = $self->relationship_info($rel)
2078 0 1211 unless my $rel_info = $self->relationship_info($join)
2104 381 830 $parent_force_left ? :
2124 502 241 if exists $relinfo->{'attrs'}{'is_foreign_key_constraint'}
2127 39 202 unless ref $cond eq 'HASH'
2148 202 0 if exists $keyhash->{$p} and not defined $$rel_data{$keyhash->{$p}} and not +($colinfos ||= $rel_source->columns_info)->{$keyhash->{$p}}{'is_auto_increment'}
2205 0 0 unless not defined $_
2209 0 0 unless $is_objlike[$_]
2211 0 0 if (defined &blessed($res_args[$_])) { }
2214 0 0 if ($res_args[$_]->isa('DBIx::Class::ResultSet')) { }
0 0 elsif ($_ == 0 and $res_args[0]->isa($__expected_result_class_isa)) { }
2229 0 0 unless ref $res_args[$_] eq 'HASH'
2234 0 0 $is_objlike[0] ? :
0 0 $is_objlike[1] ? :
0 0 $rel_name ? :
2248 0 0 if defined $cond
2262 0 0 if ($rc->{'join_free_condition'} and ref $res[0] eq 'HASH')
2270 0 0 wantarray ? :
2345 2403 7695 ref $_[0] eq 'HASH' ? :
2349 0 30294 if not defined $args->{$_} or length ref $args->{$_}
2353 0 10098 if $args->{'self_alias'} eq $args->{'foreign_alias'}
2361 0 10098 unless my $rel_info = $self->relationship_info($args->{'rel_name'})
2365 77 10021 if $rel_info and exists $rel_info->{'_original_name'}
2368 0 3590 if exists $args->{'self_result_object'} and exists $args->{'foreign_values'}
2379 0 10098 if exists $args->{'self_result_object'} and not defined &blessed($args->{'self_result_object'}) && $args->{'self_result_object'}->isa($__expected_result_class_isa)
2386 679 9 if (exists $args->{'foreign_values'} and ref $args->{'foreign_values'} eq 'HASH' || $self->throw_exception(q[Argument 'foreign_values' must be a hash reference]) and keys %{$$args{'foreign_values'};})
2450 2322 0 $col_idx->{$_} ? :
3 2322 length ref $args->{'foreign_values'}{$_} && ($rel_idx->{$_} || &is_literal_value($args->{'foreign_values'}{$_}) || (!exists +($equivalencies ||= extract_equality_conditions($args->{'foreign_values'}, 'consider nulls'))->{$_} || ($equivalencies->{$_} || '') eq \'1 = 0') && $self->throw_exception("Resolution of relationship '$args->{'rel_name'}' failed: " . "supplied value for foreign column '${_}' is not a direct " . 'equivalence expression')) ? :
2327 0 if not $_ =~ /^-/ or $self->throw_exception("The key '${_}' supplied as part of 'foreign_values' during " . 'relationship resolution must be a column name, not a function')
2462 1261 8824 if (ref $rel_info->{'cond'} eq 'CODE') { }
8804 20 elsif (ref $rel_info->{'cond'} eq 'HASH') { }
20 0 elsif (ref $rel_info->{'cond'} eq 'ARRAY') { }
2470 174 2348 exists $args->{$_} ? :
2479 104 1157 if exists $cref_args->{'self_result_object'}
2484 1 1260 if @extra
2487 89 1171 if ($ret->{'join_free_condition'})
2491 0 89 unless ref $ret->{'join_free_condition'} eq 'HASH'
2494 21 68 if (defined $args->{'self_result_object'}) { }
68 0 elsif (defined $args->{'foreign_values'}) { }
2505 0 89 unless $joinfree_alias
2543 0 8898 unless $fc =~ s/^foreign\.//
2546 0 8898 unless $lc =~ s/^self\.//
2562 611 8193 if ($args->{'foreign_values'}) { }
3467 4726 elsif (defined $args->{'self_result_object'}) { }
2601 2 88 $args->{'self_result_object'}->in_storage ? :
3398 90 $args->{'self_result_object'}->has_column_loaded($l_cols[$_]) ? :
2605 0 20 if (@{$rel_info->{'cond'};} == 0) { }
2616 0 20 if (@{$rel_info->{'cond'};} == 1) { }
2622 0 40 if $ret and ($ret->{'join_free_condition'} xor $subcond->{'join_free_condition'})
2648 4 10078 if ($args->{'require_join_free_condition'} and not defined $ret->{'join_free_condition'})
2656 1 3 exists $args->{'foreign_values'} ? :
2664 102 9976 if ($ret->{'join_free_condition'} and not $ret->{'join_free_values'})
2676 12 103 if ($_ =~ /^-/) { }
2681 0 103 unless my($col) = $_ =~ /\.(.+)/
2687 92 11 if (exists $jfc_eqs->{$_} and ($jfc_eqs->{$_} || '') ne \'1 = 0') { }
2697 23 79 if @nonvalues
2708 2 10076 if $args->{'require_join_free_values'} and @nonvalues
2730 1274 8802 unless ($ret->{'identity_map'})
2738 451 823 if $ret->{'condition'} eq \'1 = 0' or keys %{$$ret{'condition'};} != keys %$col_eqs
2750 0 1281 if $col_eqs->{$lhs} eq \'1 = 0'
2760 0 1281 unless $colinfos->{$lhs}
2762 856 425 ref $col_eqs->{$lhs} eq 'HASH' && keys %{$$col_eqs{$lhs};} == 1 && exists $col_eqs->{$lhs}{'-ident'} ? :
1179 102 if (my $rhs_ref = ref $col_eqs->{$lhs} eq 'HASH' && keys %{$$col_eqs{$lhs};} == 1 && exists $col_eqs->{$lhs}{'-ident'} ? [$col_eqs->{$lhs}{'-ident'}] : &is_literal_value($col_eqs->{$lhs})) { }
2 200 elsif ($col_eqs->{$lhs} =~ /^ ( \Q$args->{'self_alias'}\E \. .+ ) /x and +($colinfos->{$1} || {})->{'-result_source'} == $rel_rsrc) { }
2773 966 213 if ($$colinfos{$rhs_ref->[0]} and $colinfos->{$lhs}{'-source_alias'} ne $$colinfos{$rhs_ref->[0]}{'-source_alias'})
2783 0 966 $colinfos->{$lhs}{'-source_alias'} eq $args->{'self_alias'} ? :
2808 458 9310 $identity_map_incomplete ? :
9768 308 if $ret->{'identity_map'}
2823 9983 93 unless $ret->{'condition'} eq \'1 = 0' or ref $ret->{'condition'} eq 'HASH' and grep {$_ =~ /^-/;} keys %{$$ret{'condition'};}
2922 1 27235 unless ($self->has_relationship($rel))
2929 27207 28 if (my $schema = &dbic_internal_try(sub { $self->schema; } )) { }
2955 0 0 unless ($self->has_relationship($rel))
2985 0 206 $_[0]{'_detached_thaw'} ? :
2996 0 67862 if $global_phase_destroy ||= &in_global_destruction()
3013 67816 46 if not ref $_[0]{'schema'} or &isweak($_[0]{'schema'})
3020 0 46 if $SIG{'__DIE__'}
3026 33 13 if ($_[0]{'schema'})
3040 0 46 unless (eval { do { &weaken($_[0]{'schema'}); if ($_[0]{'schema'}) { my $srcregs = $_[0]{'schema'}->source_registrations; defined $srcregs->{$_} and $srcregs->{$_} == $_[0] and $srcregs->{$_} = $_[0] and last foreach (keys %$srcregs); } ; 1 } })
3067 2058 16 $self->{'schema'} ? :