Branch Coverage

blib/lib/DBIx/SQLCrosstab.pm
Criterion Covered Total %
branch 46 272 16.9


line true false branch
97 0 2 unless $opt
99 1 1 if (ref $opt eq 'HASH') { }
1 0 elsif ($opt =~ /^stub$/i) { }
109 2 0 if ($self->_check_allowed)
110 0 2 if ($$self{'RaiseError'})
125 0 1 unless 2 <= scalar @_
129 1 0 if (exists $_xkeywords{$param}) { }
159 1 34 if /^dbh$/
160 12 22 if (exists $$self{$_} and defined $$self{$_})
171 0 1 unless open PARAMS, "> $param_file_name"
174 0 1 unless close PARAMS
182 0 1 unless $params_file_name
184 0 1 unless open PARAMS, "< $params_file_name"
190 1 0 if ($value) { }
192 0 1 if ($@)
195 0 1 unless $params
202 0 1 unless close PARAMS
203 0 1 if $errstr
204 0 1 unless ref $params eq 'HASH'
207 0 12 unless exists $_xkeywords{$_}
217 0 0 if ($_RaiseError) { }
0 0 elsif ($_PrintError) { }
231 0 18 unless defined $_xkeywords{$_}
234 0 2 if ($$self{'col_exclude'})
235 0 0 unless ref $$self{'col_exclude'} eq 'ARRAY'
245 0 0 unless defined $$set{$_}
254 0 20 unless defined $$self{$_}
257 4 0 if (defined $$self{'dbh'}) { }
258 1 3 if (ref $$self{'dbh'} and ref($$self{'dbh'}) =~ /DBI::db/) { }
3 0 elsif (ref $$self{'dbh'} and ref $$self{'dbh'} eq 'HASH') { }
268 0 3 unless $dbh = 'DBI'->connect($$par{'dsn'}, $$par{'user'}, $$par{'password'}, $$par{'params'})
272 0 3 if ($@) { }
289 0 6 unless exists $$row{$_} and defined $$row{$_}
295 0 8 unless exists $_rowkeywords{$_}
301 0 16 unless exists $$col{$_} and defined $$col{$_}
307 0 22 unless exists $_colkeywords{$_}
313 0 4 unless (ref $$self{'op'})
317 0 0 unless defined $$self{'op_col'}
320 0 0 if ($$self{'add_op'})
321 0 0 unless ref $$self{'add_op'} and ref $$self{'add_op'} eq 'ARRAY'
333 0 4 unless ref $$self{'op'} eq 'ARRAY'
337 0 4 unless ref $op and ref $op eq 'ARRAY'
341 0 28 unless grep {$$op[0] =~ /$_/;} @_operations
342 0 28 unless @$op eq 2
345 0 4 if (scalar @{$$self{'op'};} > 1)
380 0 4 if ($$self{'add_real_names'} and $$self{'use_real_names'})
392 0 0 unless (@_)
416 0 0 if $level > $#$array
433 0 0 if ($top->daughters)
436 0 0 unless ($node)
457 0 0 if ($mode eq 'normal') { }
0 0 elsif ($mode eq 'group') { }
472 0 0 unless $node->ancestors
491 0 0 if ($val)
501 0 0 if ($val)
513 0 0 if ($val)
532 0 0 if (exists $$row{$_})
540 0 0 if ($separator =~ /[a-z?*+]/i)
544 0 0 unless (grep {$_ eq $separator;} @separators)
554 0 0 if ($k =~ /\Q$sep\E/)
559 0 0 if ($ok)
564 0 0 unless ($ok)
566 0 0 if ($count++ > 3)
588 0 0 if (grep {exists $$_{'group'};} @{$$self{'cols'};}) { }
593 0 0 exists $$_{'alias'} ? :
597 0 0 if $$_{'from'}
605 0 0 if ($orderby)
616 0 0 if ($@)
622 0 0 if ($@)
642 0 0 exists $$_{'alias'} ? :
648 0 0 if ($$_{'col_list'}) { }
650 0 0 unless (ref $list eq 'ARRAY')
654 0 0 unless ref $val eq 'HASH'
656 0 0 unless defined $$val{'id'}
658 0 0 unless (defined $$val{'value'})
670 0 0 if (exists $$_{'value'})
674 0 0 if (exists $$_{'where'})
678 0 0 if (exists $$_{'orderby'})
687 0 0 if ($@)
694 0 0 if ($@)
698 0 0 unless (exists $$_{'value'})
707 0 0 if ($$_{'exclude_value'})
708 0 0 unless (ref $$_{'exclude_value'} eq 'ARRAY')
722 0 0 exists $$_{'value'} ? :
732 0 0 unless $self->_check_required
735 0 0 unless my $xvalues = $self->_get_xvalues
739 0 0 unless $$row{'alias'}
750 0 0 if ($$self{'use_group'}) { }
0 0 elsif ($$self{'col_sub_total'}) { }
751 0 0 if ($$self{'col_sub_total'}) { }
765 0 0 unless $$self{'query_separator'} = $self->_check_query_separator_applicability(\@permutations, $separator)
789 0 0 if $$self{'col_exclude'} and grep {$name eq $_;} @{$$self{'col_exclude'};}
790 0 0 if ($$self{'check_group'} and $$self{'keepcols'})
791 0 0 unless grep {$name =~ /^$_/;} @{$$self{'keepcols'};}
796 0 0 if (@{$$self{'op'};} > 1)
800 0 0 if ($$self{'use_real_names'}) { }
814 0 0 if ($$self{'add_real_names'}) { }
824 0 0 if (@{$$self{'op'};} > 1 and $$self{'col_sub_total'})
831 0 0 if (@{$$self{'op'};} > 1)
838 0 0 if ($$self{'where'})
841 0 0 if ($$self{'having'})
847 0 0 if ($$self{'col_total'})
852 0 0 if ($$self{'where'})
859 0 0 if ($$self{'having'})
865 0 0 if ($$self{'row_sub_total'})
870 0 0 if $_ >= $nr
877 0 0 if ($$self{'col_total'})
888 0 0 if ($$self{'where'})
892 0 0 if ($$self{'having'})
898 0 0 if ($$self{'row_total'})
904 0 0 if ($$self{'col_total'})
910 0 0 if ($$self{'where'})
928 0 0 if $_ > $max
935 2 0 if ($$self{'records'} and $$self{'col_names'})
936 0 2 unless ref $$self{'col_names'} eq 'ARRAY'
938 0 2 unless ref $$self{'records'} eq 'ARRAY' and ref $$self{'records'}[0] eq 'ARRAY'
947 0 0 unless $$self{'query'}
955 0 0 if ($@)
962 0 0 if ($@)
967 0 0 exists $$self{'realnames'}{$_} ? :
978 0 0 if ($@)
981 0 0 if ($$self{'remove_if_zero'})
982 0 0 defined $_ ? :
986 0 0 if (defined $c and $c ne '0')
995 0 0 if ($zeroes[$_]) { }
1003 0 0 if (@voids)
1013 0 0 if ($$self{'remove_if_null'})
1018 0 0 if (defined $_)
1027 0 0 if ($nulls[$_]) { }
1035 0 0 if (@voids)
1047 0 0 $$_[$i] ? :
1048 0 0 if (defined $$_[$i] and $$_[$i] =~ /^\d+\.(\d+)/)
1050 0 0 if (length $1 > 2)
1054 0 0 unless defined $lengths[$i]
1055 0 0 unless defined $len
1056 0 0 if $lengths[$i] < $len