Branch Coverage

blib/lib/DBIx/Class/Storage/DBIHacks.pm
Criterion Covered Total %
branch 138 160 86.2


line true false branch
58 57 935 unless 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
78 237 698 if $attrs->{'_force_prune_multiplying_joins'} or $attrs->{'group_by'}
101 1485 130 if not defined $j->[0]{'-alias'} or $need_joins{$j->[0]{'-alias'}}
108 2616 222 $need_joins{$_} ? :
130 0 87 unless ref $attrs->{'from'} eq 'ARRAY' and @{$attrs->{'from'};} > 1 and ref $attrs->{'from'}[0] eq 'HASH' and ref $attrs->{'from'}[1] eq 'ARRAY'
147 15 72 if delete $inner_attrs->{'_order_is_artificial'} or not $inner_attrs->{'rows'}
158 20 0 ref $node eq 'ARRAY' && ref $node->[0] eq 'HASH' ? :
87 20 ref $node eq 'HASH' ? :
163 87 0 if (($h->{'-alias'} || '') eq $root_alias and $h->{'-rsrc'})
170 0 87 unless $root_node
181 432 322 if $colinfo->{$sel} and $colinfo->{$sel}{'-source_alias'} ne $root_alias
184 17 305 if (ref $sel eq 'HASH') { }
295 20 elsif (not ref $sel and my $ci = $colinfo->{$sel}) { }
211 219 400 unless $_->{'-seen_columns'}
218 0 546 unless my $ci = $colinfo->{$_}
219 37 509 if ($ci->{'-source_alias'} eq $root_alias and not $$selected_root_columns{$ci->{'-colname'}}++)
238 87 0 unless $self->{'_use_join_optimizer'}
250 39 6 if (grep {$_ ne $root_alias;} keys %{{} unless $inner_aliastypes->{'multiplying'};} and !$inner_aliastypes->{'grouping'} || $inner_attrs->{'_grouped_by_distinct'})
251 0 87 unless $inner_aliastypes->{'multiplying'}
267 0 39 unless my(@pks) = map({"$root_alias.$_";} $root_node->{'-rsrc'}->primary_columns)
270 0 39 unless $cur_sel->{$col}++
273 0 39 $inner_select_with_extras ? :
308 17 69 if ($root_node_offset) { }
340 200 144 unless $outer_aliastypes->{$_}
348 109 10 if ($outer_select_chain->{$alias}) { }
8 2 elsif (grep {$_->{$alias};} @outer_nonselecting_chains) { }
355 6 2 $outer_aliastypes->{'multiplying'}{$alias} ? :
363 2 4 if ($may_need_outer_group_by and $attrs->{'_grouped_by_distinct'})
421 0 1076 if ref $attrs->{'from'} ne 'ARRAY'
432 1798 990 if ref $j eq 'ARRAY'
434 8 2780 unless my $al = $j->{'-alias'}
440 835 1945 if ref $node eq 'ARRAY' and not $j->{'-is_single'}
447 986 1794 unless $j->{'-join_path'}
358 2422 if grep {$aliases_by_type->{'multiplying'}{$_};} grep({$_ ne $al;} map({values %$_;} @{[] unless $j->{'-join_path'};}))
471 977 99 unless (defined $sql_maker->{'quote_char'} and length $sql_maker->{'quote_char'})
503 274 5121 length ref $_ ? :
511 346 370 ref $_ ? :
514 86 990 ref $attrs->{'from'}[0] eq 'ARRAY' ? :
525 1908 8060 $_ =~ /^\s*$/ ? :
0 9968 length ref $_ ? :
417 9968 !defined($_) ? :
560 1064 12 $all_unq_columns ? :
583 12685 3862 if (defined $matches[$i])
588 10088 2597 if defined $matches[$i + 1]
600 36 3278 unless $unq_col_re
604 2496 2496 unless defined $_
605 0 2496 unless my $alias = $colinfo->{$_}{'-source_alias'}
652 399 14 if (not ref $_ or ref $_ ne 'HASH')
655 0 399 if ($colinfos->{$_} and not $_ =~ /\./)
663 44 66 unless my(@order_by) = $self->_extract_order_criteria($attrs->{'order_by'})
681 0 166 if $order_by[$o_idx][0] =~ /^ (?: min | max ) \s* \( .+ \) $/xi
685 1 2 if (@{$order_by[$o_idx];} != 1 or not $chunk_ci = $$colinfos{$order_by[$o_idx][0]} and $attrs->{'_aliastypes'})
696 3 163 unless $chunk_ci
699 88 75 if $group_index{$chunk_ci->{'-fq_colname'}}
708 61 14 if $group_already_unique
711 16 59 if ($group_already_unique and not $aliastypes->{'multiplying'}{$chunk_ci->{'-source_alias'}} and not $aliastypes->{'premultiplied'}{$chunk_ci->{'-source_alias'}}) { }
737 105 40 ref $_ eq 'ARRAY' ? :
750 40 19 $is_desc ? :
760 1 65 if $leftovers
764 46 19 if (@new_order_by)
770 46 19 @new_order_by ? :
777 39 18 $_[2] ? :
786 22 900 unless wantarray
789 900 0 $orig_quote_chars ? :
796 221 140 ref $_ ? :
801 253 108 unless $chunk->[0] =~ s/^ $lq (.+?) $rq $sep $lq (.+?) $rq $/"$1.$2";/ex
810 0 922 if ($sql_maker) { }
830 27 3 $where ? :
0 30 unless my(@cols) = (map({$_->[0];} $self->_extract_order_criteria($order_by)), $where ? keys %{extract_equality_conditions($where);} : ())
835 30 0 keys %$colinfo ? :
850 77 10 if $src->_identifying_column_set($_)
865 0 43 unless defined $nodes
871 0 43 unless @ord_cols
884 17 94 unless my $colinfo = $colinfos->{$col}
887 8 86 unless $$valid_aliases{$colinfo->{'-source_alias'}}
892 85 1 if $colinfo->{'-source_alias'} eq $attrs->{'alias'}
898 8 35 unless $seen_main_src_cols
907 25 1 $colinfos->{$_} && $colinfos->{$_}{'-source_alias'} eq $attrs->{'alias'} ? :
908 18 17 $attrs->{'where'} ? :
914 35 0 $attrs->{'result_source'}->_identifying_column_set([keys %$seen_main_src_cols, @$main_src_fixed_cols_from_cond]) ? :