Branch Coverage

blib/lib/SQL/Abstract.pm
Criterion Covered Total %
branch 194 254 76.3


line true false branch
13 0 14 if ($] < 5.009005) { }
23 0 14 $ENV{'SQLA_ISVALUE_IGNORE_AUTOGENERATED_STRINGIFICATION'} ? :
63 1160 0 unless $_[0]{'debug'}
80 9 28 ref $_[0] eq 'REF' && ref ${$_[0];} eq 'ARRAY' ? :
13 37 ref $_[0] eq 'SCALAR' ? :
127 32 11 defined($_[1] = &Scalar::Util::blessed($_[0])) && (grep({*{qq[${_}::(""];}{'CODE'};} @{$_[2] = &mro::get_linear_isa($_[1]);}) || (grep({*{"${_}::(0+";}{'CODE'};} @{$_[2];}) || grep({*{"${_}::(bool";}{'CODE'};} @{$_[2];})) && !((($_[3]) = grep({*{"${_}::()";}{'CODE'};} @{$_[2];})) && defined ${"$_[3]::()";} && !${"$_[3]::()";})) ? :
2 43 ref $_[0] eq 'HASH' && keys %{$_[0];} == 1 && exists $_[0]{'-value'} ? :
2 45 !length(ref $_[0]) ? :
144 101 510 ref $_[0] eq 'HASH' ? :
147 2 609 if $opt{'case'} and $opt{'case'} ne 'lower'
150 8 603 $opt{'logic'} ? :
198 5 1797 if ($_[1] =~ /$_[0]{'injection_guard'}/mix)
221 10 37 if ($options->{'returning'})
227 47 0 wantarray ? :
265 0 21 unless $self->{'bindtype'} ne 'columns'
314 4 1 if ($self->{'array_datatypes'}) { }
371 0 38 unless ref $data eq 'HASH'
378 30 6 if ($where)
384 6 30 if ($options->{'returning'})
390 36 0 wantarray ? :
404 4 0 if ($self->{'array_datatypes'}) { }
427 0 4 if @rest or not $op =~ /^\-(.+)/
476 75 14 wantarray ? :
481 14 88 ref $fields eq 'ARRAY' ? :
499 6 4 if ($options->{'returning'})
505 10 0 wantarray ? :
526 463 46 defined $sql && length $sql ? :
529 50 459 if ($order)
535 509 0 wantarray ? :
549 1347 0 if (wantarray) { }
569 0 395 unless $logic eq 'AND' or $logic eq 'OR'
578 30 658 if defined $el and not length $el
584 15 0 if @$el
592 272 1 if %$el
604 623 1 if ($sql)
637 225 1167 if ($k =~ /^-./) { }
655 19 0 unless &List::Util::first(sub { $op =~ /$_->{'regex'}/; } , @{$$self{'unary_ops'};}) or defined $self->{'_nested_func_lhs'} and $self->{'_nested_func_lhs'} eq $k
660 44 1123 unless (length $k)
661 20 24 if (&is_literal_value($v)) { }
687 2 444 if not defined $self->{'_nested_func_lhs'} and &List::Util::first(sub { $op =~ /$_->{'regex'}/; } , @{$$self{'special_ops'};})
689 204 240 if (my $op_entry = &List::Util::first(sub { $op =~ /$_->{'regex'}/xi; } , @{$$self{'unary_ops'};}))
692 204 0 if (not ref $handler) { }
0 0 elsif (ref $handler eq 'CODE') { }
693 9 195 if ($op =~ s/ [_\s]? \d+ $//x)
714 0 207 unless defined $self->{'_nested_func_lhs'}
744 43 27 $op =~ /^or/i ? :
749 0 0 $op =~ /^or/i ? :
757 0 0 $op =~ /^or/i ? :
814 14 10 if $op =~ /^not/i
822 2 6 if (not defined $rhs or length ref $rhs)
831 2 4 $lhs ? :
845 4 8 unless (defined $rhs)
846 4 0 defined $lhs ? :
854 4 4 defined $lhs ? :
859 4 4 $lhs ? :
874 45 1 if (@$v) { }
879 22 23 defined $v[0] && $v[0] =~ /^ - (?: AND|OR ) $/xi ? :
886 22 23 if ($op)
891 22 23 $op ? :
907 151 432 defined $self->{'_nested_func_lhs'} ? :
932 28 13 if (ref $val eq 'HASH' and keys %$val == 1 and exists $val->{'-value'} and not defined $val->{'-value'})
939 1 587 if ($orig_op =~ /^ \- (and|or) $/xi) { }
137 450 elsif (my $special_op = &List::Util::first(sub { $op =~ /$_->{'regex'}/xi; } , @{$$self{'special_ops'};})) { }
945 0 137 if (not $handler) { }
134 3 elsif (not ref $handler) { }
3 0 elsif (ref $handler eq 'CODE') { }
980 32 0 $op =~ /$self->{'not_like_op'}/ ? :
20 32 $op =~ /$self->{'inequality_op'}/ ? :
9 52 $op =~ /$self->{'like_op'}/ ? :
8 61 $op =~ /$self->{'equality_op'}/ ? :
8 69 $op =~ /^not$/i ? :
991 212 0 $self->{'_nested_func_lhs'} eq $k ? :
997 7 554 defined $all_sql && $all_sql ? :
1025 106 43 if (@vals) { }
1028 119 33 defined $_ ? :
1033 2 104 if (defined $vals[0] and $vals[0] =~ /^ - (AND|OR) $/xi)
1041 36 4 if (@vals > 1 and !$logic || $logic eq 'OR' and $op =~ /$self->{'inequality_op'}/xi || $op =~ /$self->{'not_like_op'}/)
1066 24 2 $op =~ /$self->{'not_like_op'}/ ? :
1 26 $op =~ /$self->{'inequality_op'}/ ? :
16 27 $op =~ /$self->{'like_op'}/ ? :
0 43 $op =~ /$self->{'equality_op'}/ ? :
1162 7 28 if @$vals != 2
1180 0 2 if @rest or not $func =~ /^ \- (.+)/x
1211 2 35 if defined $vals and not ref $vals
1219 22 3 if (@$vals) { }
1237 0 1 if @rest or not $func =~ /^ \- (.+)/x
1264 1 2 $op =~ /\bnot\b/i ? :
1302 6 1 if ($inner =~ /\)/)
1313 1 5 if defined $remainder and $remainder =~ /\S/
1338 46 4 @sql ? :
1346 50 0 wantarray ? :
1374 0 40 unless $key
1376 2 38 if (@rest or not $key =~ /^-(desc|asc)/i)
1429 4 1458 unless defined $_[1]
1430 2 1456 if ref $_[1] eq 'SCALAR'
1433 972 484 unless $_[0]{'quote_char'}
1438 0 0 $qref eq 'ARRAY' ? :
484 0 !$qref ? :
1446 0 487 $_ eq '*' ? :
449 35 $_[0]{'name_sep'} ? :
1454 38 1515 if ($_[0]{'convert'})
1465 100 943 $_[0]{'bindtype'} eq 'columns' ? :
1475 30 65 if ($self->{'bindtype'} eq 'columns')
1477 10 21 if (not defined $_ or ref $_ ne 'ARRAY' or @$_ != 2)
1487 358 1064 if (@$clauses_aref > 1) { }
1064 0 elsif (@$clauses_aref) { }
1505 42 2276 $_[0]{'case'} ? :
1516 252 5140 unless defined $data
1519 2 5138 &Scalar::Util::blessed($data) ? :
1521 1974 3166 unless $ref
1526 2 106 &Scalar::Util::blessed($data) ? :
1527 106 2 if $ref
1536 2223 3156 if $try[0] eq 'SCALAR' or $try[0] eq 'UNDEF'
1546 2663 0 if $method = $self->can($meth_prefix . '_' . $_)
1559 2716 810 if $coderef = $dispatch_table->{$_}
1563 0 2716 unless $coderef
1583 0 6 unless ref $data eq 'HASH'
1591 0 1 if ($self->{'array_datatypes'}) { }
1623 0 0 if ($ref eq 'HASH') { }
0 0 elsif ($ref eq 'ARRAY') { }
0 0 elsif ($ref eq 'SCALAR') { }
1628 0 0 if ($r eq 'ARRAY') { }
0 0 elsif ($r eq 'SCALAR') { }
1647 0 0 if ($r eq 'ARRAY') { }
0 0 elsif ($r eq 'SCALAR') { }
1675 0 0 if (wantarray) { }
1679 0 0 ref $d ? :