| line | % | coverage | condition |
| 379 | 100 | | $$params{"expires_in"} and not $$params{"cache_duration"} |
| 385 | 100 | | $defaults{"cache_duration"} ||= "1 hour" |
| 407 | 33 | | scalar @_ == 1 and ref $_[0] eq "HASH" |
| 67 | | scalar @_ == 0 and ref $pkg eq "HASH" |
| 591 | 100 | | scalar @_ == 1 and not ref $_[0] |
| 628 | 33 | | defined $args{"logger"} and not &Scalar::Util::blessed($args{"logger"}) |
| 632 | 60 | | A | B | C | D | dec |
|---|
| 0 | 0 | 0 | 0 | 0 | | 0 | 0 | 0 | 1 | 1 | | 0 | 0 | 1 | X | 1 | | 0 | 1 | X | X | 1 | | 1 | X | X | X | 1 |
| $args{"dsn"} or $defaults{"dsn"} or $args{"url"} or $defaults{"url"} |
| 633 | 100 | | $args{"directory"} or $defaults{"directory"} |
| 637 | 67 | | $args{"host"} // $defaults{"host"} |
| 638 | 100 | | $given_host and not $class->_is_local_host($given_host) |
| 639 | 67 | | $args{'directory'} || $defaults{'directory'} |
| 33 | | $args{'directory'} || $defaults{'directory'} |
| 713 | 33 | | $c and $c->isa(__PACKAGE__) |
| 718 | 67 | | $$params{"sep_char"} ||= $$self{"sep_char"} ? $$self{"sep_char"} : "!" |
| 719 | 67 | | $$params{'max_slurp_size'} || $$self{'max_slurp_size'} |
| 721 | 33 | | $$self{'table'} || ref $self |
| 732 | 33 | | $$self{'dsn'} || $defaults{'dsn'} |
| 763 | 33 | | $$self{'url'} || $defaults{'url'} |
| 767 | 0 | | $$self{"ua"} // "LWP::UserAgent::Cached"->new("timeout", 30, "agent", 'Database::Abstraction/' . $VERSION) |
| 776 | 0 | | ($$self{"html_table_index"} // $defaults{"html_table_index"}) // 0 |
| 0 | | $$self{"html_table_index"} // $defaults{"html_table_index"} |
| 812 | 0 | | $$self{"data"} and ref $$self{"data"} eq "HASH" |
| 823 | 67 | | $$self{'dbname'} || $defaults{'dbname'} || $class_stem |
| 825 | 33 | | $dbname =~ /\A[a-zA-Z0-9_.-]+\z/ and not $dbname =~ /\.\./ |
| 832 | 33 | | $$self{'host'} || $defaults{'host'} |
| 835 | 0 | | $$self{'directory'} || $defaults{'directory'} |
| 838 | 0 | | $$self{'directory'} || $defaults{'directory'} |
| 845 | 0 | | defined $content and length $content |
| 856 | 33 | | $$self{'directory'} || $defaults{'directory'} |
| 872 | 33 | | -r $db_candidate and $self->_is_deep_db($db_candidate) |
| 906 | 0 | | &Scalar::Util::reftype($row) // "" |
| 918 | 0 | | &Scalar::Util::reftype($row) // "" |
| 969 | 67 | | $$self{'filename'} || $defaults{'filename'} |
| 970 | 33 | | $filename =~ /\A[a-zA-Z0-9_.-]+\z/ and not $filename =~ /\.\./ |
| 975 | 67 | | defined $slurp_file and -r $slurp_file |
| 1032 | 100 | | -s $slurp_file <= $max_slurp_size and not $$params{"column_names"} |
| 1096 | 0 | | ref $xml eq "HASH" and not $$self{"no_entry"} |
| 1141 | 67 | | $$self{"data"} and ref $$self{"data"} eq "HASH" |
| 1200 | 100 | | Params::Get::get_params(undef, \@_) // {} |
| 1212 | 100 | | $params //= {} |
| 1219 | 100 | | not $join_clause and $$self{"data"} and not $self->_has_complex_criteria($params) |
| 1220 | 50 | | scalar keys %{$params;} == 1 and defined $$params{"entry"} and not $$self{"no_entry"} |
| 1257 | 100 | | $$self{"type"} eq "CSV" and not $$self{"no_entry"} |
| 1307 | 67 | | $rc and not $$self{"no_fixate"} |
| 1352 | 50 | | Params::Get::get_params(undef, \@_) // {} |
| 1360 | 100 | | $params //= {} |
| 1366 | 75 | | not $join_clause and $$self{"data"} and not $self->_has_complex_criteria($params) |
| 1367 | 50 | | scalar keys %{$params;} == 1 and defined $$params{"entry"} and not $$self{"no_entry"} |
| 1397 | 100 | | $$self{"type"} eq "CSV" and not $$self{"no_entry"} |
| 1503 | 100 | | Params::Get::get_params(undef, \@_) // {} |
| 1511 | 33 | | $self->_has_complex_criteria($params) || $$self{$table} |
| 50 | | scalar keys %{$params;} == 1 and defined $$params{"entry"} and not $$self{"no_entry"} |
| 1519 | 67 | | exists $$self{'data'}{$$params{'entry'}} && $$self{'data'}{$$params{'entry'}} |
| 1541 | 100 | | $$self{"type"} eq "CSV" and not $$self{"no_entry"} |
| 1637 | 67 | | A | B | C | D | E | dec |
|---|
| 0 | X | X | X | X | 0 | | 1 | 0 | X | X | X | 0 | | 1 | 1 | 0 | X | X | 0 | | 1 | 1 | 1 | 0 | X | 0 | | 1 | 1 | 1 | 1 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 | 1 |
| $$self{"data"} and not $$self{"no_entry"} and scalar keys %{$params;} == 1 and defined $$params{"entry"} and not $self->_has_complex_criteria($params) |
| 1646 | 25 | | not $$self{"no_entry"} and scalar keys %{$params;} == 1 and defined $$params{"entry"} |
| 1650 | 20 | | A | B | C | D | dec |
|---|
| 0 | X | X | X | 0 | | 1 | 0 | X | X | 0 | | 1 | 1 | 0 | X | 0 | | 1 | 1 | 1 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 |
| $$self{"no_entry"} and scalar keys %{$params;} == 1 and defined $id and defined $$params{$id} |
| 1659 | 33 | | delete $params->{'table'} // $table |
| 1667 | 100 | | $$self{"type"} eq "CSV" and not $$self{"no_entry"} |
| 1852 | 33 | | ref $data eq "ARRAY" and @{$data;} |
| 1930 | 33 | | ref $data eq "ARRAY" and @{$data;} |
| 1947 | 50 | | $$self{$table}{"Driver"}{"Name"} // "" |
| 2067 | 67 | | exists $self->{'auto_load'} and not $$self{"auto_load"} |
| 2081 | 33 | | $$self{"no_entry"} and not $$self{"berkeley"} |
| 2097 | 100 | | delete $params{'distinct'} || delete $params{'unique'} |
| 2099 | 100 | | wantarray and not $distinct |
| 2100 | 100 | | scalar keys %params == 0 and my $data = $$self{"data"} |
| 2109 | 67 | | $$self{"type"} eq "CSV" and not $$self{"no_entry"} |
| 2120 | 100 | | scalar keys %params == 1 and defined(my $key = $params{"entry"}) |
| 2127 | 50 | | exists $row->{$key} and defined $$row{$key} and $$row{$key} eq $value |
| 2139 | 67 | | exists $data->{$key} and defined(my $hash = $$data{$key}) |
| 2176 | 75 | | exists $row->{$key} and defined $$row{$key} and $$row{$key} eq $value |
| 2188 | 100 | | $$self{"type"} eq "CSV" and not $$self{"no_entry"} |
| 2217 | 67 | | scalar @args and $args[0] |
| 2241 | 33 | | $$self{$table}->prepare_cached($query) || croak($query) |
| 2251 | 33 | | scalar @rc and not $$self{"no_fixate"} |
| 2265 | 33 | | defined $^V and $^V ge "v5.14.0" |
| 2278 | 67 | | defined $temp_path and -f $temp_path |
| 2283 | 67 | | $$self{'table'} || ref $self |
| 2315 | 100 | | $$j{"type"} // "INNER" |
| 2333 | 100 | | exists $params->{'-or'} or exists $params->{'-and'} |
| 2377 | 50 | | $params //= {} |
| 2388 | 100 | | defined $or_list or defined $and_list |
| 2454 | 100 | | $op eq "-in" or $op eq "-not_in" |
| 2509 | 50 | | $params //= {} |
| 2574 | 100 | | index($lc_pat, "%") == -1 and index($lc_pat, "_") == -1 |
| 2584 | 100 | | $first_pct == 0 and $last_pct == 0 |
| 2587 | 67 | | $str_len >= $sfx_len && substr($lc_str, $str_len - $sfx_len) eq $sfx |
| 2592 | 100 | | $last_pct == $pat_len - 1 and $first_pct == $pat_len - 1 |
| 2601 | 75 | | $first_pct == 0 and $last_pct == $pat_len - 1 and $pat_len >= 3 |
| 2625 | 100 | | $$prev[$j] || $$curr[$j - 1] |
| 2629 | 100 | | $$prev[$j - 1] && ($pc eq '_' || $pc eq substr($lc_str, $j - 1, 1)) |
| 2646 | 100 | | defined $row_val and grep {$row_val eq $_;} @{$operand;} |
| 2648 | 67 | | defined $row_val and grep {$row_val eq $_;} @{$operand;} |
| 2650 | 100 | | defined $row_val and $row_val >= $$operand[0] and $row_val <= $$operand[1] |
| 2661 | 100 | | defined $row_val and $row_val ne $operand |
| 2664 | 67 | | defined $row_val and $row_val > $operand |
| 2666 | 67 | | defined $row_val and $row_val < $operand |
| 2668 | 67 | | defined $row_val and $row_val >= $operand |
| 2670 | 67 | | defined $row_val and $row_val <= $operand |
| 2676 | 100 | | defined $row_val && defined $crit_val |
| 100 | | defined $row_val || defined $crit_val |
| 2693 | 67 | | $$self{"_table_name"} //= do {
my $t = $$self{'table'} || ref $self;
$t =~ s/\A.*:://;
$t
} |
| 2694 | 33 | | $$self{'table'} || ref $self |
| 2703 | 100 | | $$self{$table} or $$self{"data"} or $$self{"berkeley"} |
| 2714 | 33 | | $$self{'table'} || ref $self |
| 2760 | 100 | | $magic{unpack "N", $buf} or $magic{unpack "V", $buf} |
| 2766 | 67 | | $hex12 eq '6115' || $hex12 eq '1561' |
| 2805 | 67 | | defined $n and $n == 4 |
| 2807 | 100 | | $magic eq 'DPDB' || $magic eq 'DPDP' |
| 2820 | 33 | | scalar @messages and my $logger = $$self{"logger"} |