Condition Coverage

blib/lib/DBIx/Class/Storage/DBIHacks.pm
Criterion Covered Total %
condition 217 292 74.3


and 3 conditions

line !l l&&!r l&&r condition
38 0 0 950 ref $attrs->{'from'} eq 'ARRAY' and @{$attrs->{'from'};} > 1
0 0 950 ref $attrs->{'from'} eq 'ARRAY' and @{$attrs->{'from'};} > 1 and ref $attrs->{'from'}[0] eq 'HASH'
0 0 950 ref $attrs->{'from'} eq 'ARRAY' and @{$attrs->{'from'};} > 1 and ref $attrs->{'from'}[0] eq 'HASH' and ref $attrs->{'from'}[1] eq 'ARRAY'
0 57 893 ref $attrs->{'from'} eq 'ARRAY' and @{$attrs->{'from'};} > 1 and ref $attrs->{'from'}[0] eq 'HASH' and ref $attrs->{'from'}[1] eq 'ARRAY' and $self->_use_join_optimizer
106 0 0 87 ref $attrs->{'from'} eq 'ARRAY' and @{$attrs->{'from'};} > 1
0 0 87 ref $attrs->{'from'} eq 'ARRAY' and @{$attrs->{'from'};} > 1 and ref $attrs->{'from'}[0] eq 'HASH'
0 0 87 ref $attrs->{'from'} eq 'ARRAY' and @{$attrs->{'from'};} > 1 and ref $attrs->{'from'}[0] eq 'HASH' and ref $attrs->{'from'}[1] eq 'ARRAY'
134 0 0 20 ref $node eq 'ARRAY' && ref $node->[0] eq 'HASH'
139 20 0 87 ($$h{-'alias'} || '') eq $root_alias and $$h{-'rsrc'}
157 27 295 432 $colinfo->{$sel} and $colinfo->{$sel}{-'source_alias'} ne $root_alias
160 10 0 295 not ref $sel and my $ci = $colinfo->{$sel}
186 236 281 37 $$ci{-'source_alias'} eq $root_alias and not $$selected_root_columns{$$ci{-'colname'}}++
213 42 45 0 grep {$_ ne $root_alias;} keys %{{} unless $inner_aliastypes->{'multiplying'};} and !$inner_aliastypes->{'grouping'} || $inner_attrs->{'_grouped_by_distinct'}
326 80 6 0 $may_need_outer_group_by and $attrs->{'_grouped_by_distinct'}
377 1031 946 898 ref $node eq 'ARRAY' and not $$j{-'is_single'}
408 996 0 125 defined $sql_maker->{'quote_char'} and length $sql_maker->{'quote_char'}
447 10216 0 0 ref $_ eq 'ARRAY' and @$_ == 0 || @$_ == 2
477 9526 0 660 $colinfo->{$piece} and my $alias = $colinfo->{$piece}{-'source_alias'}
529 1838 1037 0 $$j{-'join_type'} and $$j{-'join_type'} =~ /^left (?: \s+ outer)? $/xi
556 17 382 0 $colinfos->{$_} and not $_ =~ /\./
586 162 3 0 not $chunk_ci = $$colinfos{$order_by[$o_idx][0]} and $attrs->{'_aliastypes'}
612 14 33 28 $group_already_unique and not $aliastypes->{'multiplying'}{$$chunk_ci{-'source_alias'}}
47 12 16 $group_already_unique and not $aliastypes->{'multiplying'}{$$chunk_ci{-'source_alias'}} and not $aliastypes->{'premultiplied'}{$$chunk_ci{-'source_alias'}}
686 8096 0 0 &blessed($ident) and $ident->isa('DBIx::Class::ResultSource')
697 8229 0 3139 ref $_ eq 'ARRAY' and ref $_->[0] eq 'HASH'
719 8066 30 0 $colnames and not @$colnames
746 18 5905 103377 $seen_cols{$colname} and @{$seen_cols{$colname};} == 1
971 0 1 25 $colinfos->{$_} && $colinfos->{$_}{-'source_alias'} eq $attrs->{'alias'}
1027 0 442 0 $where_is_anded_array and !defined($chunk) || $chunk eq ''
1064 3124 18 90 ref $_ eq 'ARRAY' && ($_->[0] || '') =~ /^\-and$/i
1083 68 5600 0 defined $where->[$i] and length $where->[$i]
1098 206 343 369 @keys == 1 and not $keys[0] =~ /^\-/
1128 0 16 3238 ref $fin_idx->{$_} eq 'HASH' and keys %{$$fin_idx{$_};} == 1
1131 3116 122 0 ref $r eq 'ARRAY' and @$r == 1 && $l =~ /^\-and$/i || $l =~ /^\-or$/i
2497 0 619 ref $r eq 'HASH' and keys %$r == 1
2497 619 0 ref $r eq 'HASH' and keys %$r == 1 and $l =~ /^\-(?:and|or)$/i
1171 26937 369 2127 $$fin{-'and'} and @{$$fin{-'and'};} < 2
1180 758 0 1369 ref $and->[0] eq 'HASH' and not grep({exists $fin->{$_};} keys %{$$and[0];})
1197 34714 117 2680 ref $fin->{$col} eq 'ARRAY' and ($fin->{$col}[0] || '') =~ /^\-and$/i
1235 22252 5655 6 ref $rhs eq 'HASH' and not keys %$rhs
22252 22 5633 ref $rhs eq 'HASH' and keys %$rhs == 1
22274 5311 322 ref $rhs eq 'HASH' and keys %$rhs == 1 and exists $$rhs{-'ident'}
22252 22 5311 ref $rhs eq 'HASH' and keys %$rhs == 1
22274 5260 51 ref $rhs eq 'HASH' and keys %$rhs == 1 and exists $$rhs{-'value'}
5282 18 33 ref $rhs eq 'HASH' and keys %$rhs == 1 and exists $$rhs{-'value'} and &is_plain_value($$rhs{-'value'})
22252 22 5278 ref $rhs eq 'HASH' and keys %$rhs == 1
22274 5278 0 ref $rhs eq 'HASH' and keys %$rhs == 1 and exists $rhs->{'='}
21967 22 3820 ref $rhs eq 'HASH' and (my($subop) = keys %$rhs) == 1
21989 3072 748 ref $rhs eq 'HASH' and (my($subop) = keys %$rhs) == 1 and length ref((values %$rhs)[0])
3094 741 7 ref $rhs eq 'HASH' and (my($subop) = keys %$rhs) == 1 and length ref((values %$rhs)[0]) and my $vref = &is_plain_value(scalar((values %$rhs)[0]))
1246 471 290 697 length ref $rhs->{'='} and &is_literal_value($rhs->{'='})
1352 11875 22 475 ref $v eq 'HASH' and keys %$v == 1
84 597 81 ref $v eq 'ARRAY' and ($v->[0] || '') eq '-and'
1360 84 379 0 length ref $v->{'='} and ref $v->{'='} eq 'HASH' && keys %{$$v{'='};} == 1 && exists $v->{'='}{-'ident'} || &is_literal_value($v->{'='})
1402 7275 4381 0 not $consider_nulls and exists $vals->{'UNDEF'}

or 2 conditions

line l !l condition
139 107 0 $$h{-'alias'} || ''
232 0 0 $inner_select_with_extras ||= [@{$inner_attrs->{'select'};}]
377 898 0 $$j{-'join_path'} || []
0 898 $aliases_by_type->{'multiplying'}{$al} ||= {-'parents', $$j{-'join_path'} || []}
384 370 0 $$j{-'join_path'} || []
0 370 $aliases_by_type->{'premultiplied'}{$al} ||= {-'parents', $$j{-'join_path'} || []}
478 265 248 $alias_list->{$alias}{-'join_path'} || []
147 513 $aliases_by_type->{$type}{$alias} ||= {-'parents', $alias_list->{$alias}{-'join_path'} || []}
496 3042 2080 $alias_list->{$alias}{-'join_path'} || []
3863 5122 $aliases_by_type->{$type}{$alias} ||= {-'parents', $alias_list->{$alias}{-'join_path'} || []}
515 39 179 $alias_list->{$alias}{-'join_path'} || []
1325 218 $aliases_by_type->{$type}{$alias} ||= {-'parents', $alias_list->{$alias}{-'join_path'} || []}
529 644 567 $$j{-'join_path'} || []
628 1211 $aliases_by_type->{'restricting'}{$alias} ||= {-'parents', $$j{-'join_path'} || []}
639 13 46 $order_chunks ||= [map({ref $_ eq 'ARRAY' ? $_ : [$_];} $sql_maker->_order_by_chunks($attrs->{'order_by'}))]
664 59 86 $new_order_by[$_] ||= \$order_chunks->[$_]
737 30 8066 $colnames ||= [@auto_colnames, grep({@{$seen_cols{$_};} == 1;} keys %seen_cols)]
837 270 0 $from->[$i][0]{-'alias'} || ''
1087 1153 4359 ($where->[$i] =~ /^(\-(?:and|or))$/i)[0] || ''
1113 762 575 $self->_collapse_cond($where->[$i]) || (next)
1197 2733 64 $fin->{$col}[0] || ''
1281 220 5 $rhs->[0] || ''
1352 312 366 $v->[0] || ''

or 3 conditions

line l !l&&r !l&&!r condition
54 105 0 788 $attrs->{'_force_prune_multiplying_joins'} or $attrs->{'group_by'}
77 4 1390 130 not defined $j->[0]{-'alias'} or $need_joins{$j->[0]{-'alias'}}
123 5 11 71 delete $inner_attrs->{'_order_is_artificial'} or not $inner_attrs->{'rows'}
161 13 4 0 $$sel{-'as'} ||= $attrs->{'as'}[$i]
162 17 0 0 $$sel{-'as'} || "inner_column_$i"
213 32 0 13 !$inner_aliastypes->{'grouping'} || $inner_attrs->{'_grouped_by_distinct'}
318 0 6 2 $may_need_outer_group_by ||= $outer_aliastypes->{'multiplying'}{$alias} ? 1 : 0
447 0 0 0 @$_ == 0 || @$_ == 2
459 0 10216 not defined $_ or ref $_ eq 'ARRAY' and @$_ == 0 || @$_ == 2
553 382 17 14 not ref $_ or ref $_ ne 'HASH'
586 0 0 165 @{$order_by[$o_idx];} != 1 or not $chunk_ci = $$colinfos{$order_by[$o_idx][0]} and $attrs->{'_aliastypes'}
609 28 8 0 $attrs->{'_aliastypes'} || $self->_resolve_aliastypes_from_select_args({'from', $attrs->{'from'}, 'order_by', $attrs->{'order_by'}})
25 36 0 $aliastypes ||= $attrs->{'_aliastypes'} || $self->_resolve_aliastypes_from_select_args({'from', $attrs->{'from'}, 'order_by', $attrs->{'order_by'}})
636 13 46 0 $sql_maker ||= $self->sql_maker
746 51667 51710 0 $source_alias ||= $seen_cols{$colname}[0]
755 97952 11330 0 $colinfos->{$source_alias} ||= $rsrc->columns_info
831 0 0 258 ref $from ne 'ARRAY' or ref $from->[0] ne 'HASH'
0 0 258 ref $from ne 'ARRAY' or ref $from->[0] ne 'HASH' or not defined $from->[0]{-'alias'}
995 4490 21635 3761 $where_is_anded_array or ref $where eq 'HASH'
1027 5 5 432 !defined($chunk) || $chunk eq ''
1091 862 291 0 ref $where->[$i] eq 'HASH' or ref $where->[$i] eq 'ARRAY'
1131 108 14 0 @$r == 1 && $l =~ /^\-and$/i || $l =~ /^\-or$/i
1199 965 0 4351 !length(ref $_) || &is_plain_value($_)
1268 235 12 20 !length(ref $r) || ref $r eq 'HASH' && keys %$rhs == 1 && exists $rhs->{'='} || &is_plain_value($r)
1352 11113 22 762 not length ref $v or &is_plain_value($v)
1360 89 285 5 ref $v->{'='} eq 'HASH' && keys %{$$v{'='};} == 1 && exists $v->{'='}{-'ident'} || &is_literal_value($v->{'='})
1396 79 0 34 !length(ref $subval->{$c}) || &is_plain_value($subval->{$c})