Branch Coverage

blib/lib/DBIx/SearchBuilder/Handle.pm
Criterion Covered Total %
branch 154 286 53.8


line true false branch
99 1 21 if ($args{'Driver'} and not $self->isa('DBIx::SearchBuilder::Handle::' . $args{"Driver"}))
100 1 0 if $self->_UpgradeHandle($args{"Driver"})
108 0 21 if defined $args{'QuoteTableNames'}
114 0 0 if $self->dbh and $self->dbh->ping and $new_dsn eq $old_dsn
117 0 21 unless my $handle = "DBI"->connect($new_dsn, $args{'User'}, $args{'Password'})
131 0 21 if $self->_RequireQuotedTables
151 0 1 if $@
182 0 21 if $args{'SID'}
183 0 21 if $args{'Host'}
184 0 21 if $args{'Port'}
185 0 21 if $args{'RequireSSL'}
213 0 0 if @_
231 0 0 if @_
249 0 1056 if (@_)
310 0 0 if @_
327 0 0 unless $dbh
337 0 0 if ($self->isa("DBIx::SearchBuilder::Handle::mysql") and $self->{'database_version'} =~ /mariadb/i and "version"->parse('v' . $version) > "version"->parse("v10.2"))
361 21 965 if (@_)
407 0 155 if $self->QuoteTableNames
430 4 0 if $columns
433 0 4 if $self->{'QuoteTableNames'}
435 4 0 if $columns
438 0 4 unless $sth
441 0 4 $rows == 0 ? :
465 0 19 if $self->{'QuoteTableNames'}
470 0 19 if ($args{'IsSQLFunction'}) { }
538 0 1 if $self->{'QuoteTableNames'}
543 0 1 unless $sth
546 0 1 $rows == 0 ? :
562 0 1 if $self->{'QuoteTableNames'}
567 0 1 unless $sth
570 0 1 $rows == 0 ? :
583 262 268 if @_
586 2 528 unless ($sth)
587 0 2 if ($DBIx::SearchBuilder::Handle::DEBUG) { }
609 0 553 if (ref $bind_values[$bind_idx] eq "HASH")
616 0 0 if ($self->isa('DBIx::SearchBuilder::Handle::MariaDB') and $bhash->{'TYPE'} and $bhash->{'TYPE'} eq 'SQL_BLOB') { }
628 0 528 if ($self->LogSQLStatements)
636 0 528 if ($self->LogSQLStatements)
640 0 528 if ($@ or not $executed)
641 0 0 if ($DBIx::SearchBuilder::Handle::DEBUG) { }
680 0 0 if ($sth) { }
750 0 0 unless (defined $self->{'database_version'})
762 0 0 if $sth
771 0 0 if $args{'Short'}
819 30 13 unless ($value =~ /^$RE_CASE_INSENSITIVE_CHARS+$/o)
857 1 9 unless defined $depth
860 3 6 if $depth > 1
884 11 9 lc $args{'Action'} eq 'commit' ? :
887 9 11 if ($depth) { }
888 4 7 unless ($args{'Force'})
896 0 9 if $args{'Force'}
902 6 3 $action eq 'commit' ? :
2 7 if ($DBIx::SearchBuilder::Handle::TRANSROLLBACK{$dbh}{$action eq "commit" ? "rollback" : "commit"})
905 3 6 if $depth
909 4 2 if ($action eq 'commit') { }
913 0 2 if "DBIx::SearchBuilder::Record::Cachable"->can("FlushCache")
973 10 51 unless $dbh and $dbh->ping
975 18 33 if (@_)
977 12 6 if ($depth) { }
1002 67 135 if ($per_page)
1004 4 63 if ($sb->{'_bind_values'})
1006 2 2 if $first
1010 36 31 if ($first)
1057 4 100 if ($args{'ALIAS2'}) { }
0 100 elsif ($args{'COLLECTION2'}) { }
1063 4 0 if ($old_alias =~ /^(.*?) (\Q$args{'ALIAS2'}\E)$/) { }
1066 0 4 if $self->QuoteTableNames
1074 4 0 if ($alias) { }
1087 0 0 if ($old_alias =~ /^(.*?) ($args{'ALIAS2'})$/) { }
1090 0 0 if $self->QuoteTableNames
1099 4 0 unless exists $args{'DISTINCT'}
1102 0 4 unless ($alias)
1123 0 0 if $alias{'depends_on'} eq "main"
1139 0 104 if $self->QuoteTableNames
1142 39 65 if ($args{'TYPE'} =~ /LEFT/i) { }
1156 1 103 if ($args{'DISTINCT'} and not defined $args{'SearchBuilder'}{'joins_are_distinct'}) { }
98 5 elsif (not $args{'DISTINCT'}) { }
1180 0 0 if (ref $part) { }
1210 0 0 if ($args{'TYPE'} =~ /LEFT/i) { }
1213 0 0 if $self->QuoteTableNames
1245 0 289 $self->{'QuoteTableNames'} ? :
1267 166 498 if (ref $_) { }
1278 0 289 if (my(@not_processed) = grep((!$processed{$_}), keys %$joins))
1307 48 3 if $self->MayBeNull("SearchBuilder", $args{'SearchBuilder'}, "ALIAS", $join)
1336 0 51 if grep(($_ ne "generic_restrictions"), keys %{$args{"SearchBuilder"}{"subclauses"};})
1341 0 10 if @conditions
1349 52 1 if $join->{'type'} eq "LEFT"
1350 0 1 unless $join->{'depends_on'} eq $args{'ALIAS'}
1358 41 10 unless @conditions
1364 0 3 do { $_->{'field'} =~ /^(?i:lower)\(\s*\Q$args{'ALIAS'}\.\E/ } ? :
1 3 do { rindex($_->{'value'}, "$args{'ALIAS'}.", 0) == 0 if $_->{'value'} } ? :
9 4 do { rindex($_->{'field'}, "$args{'ALIAS'}.", 0) == 0 } ? :
13 33 ref $_ ? :
1369 4 0 if $_->{'value'}
1385 0 0 if ($conditions[$i] eq '(') { }
0 0 elsif ($conditions[$i] eq ')') { }
1391 0 0 unless $count
1401 10 3 unless @conditions or @tmp
1403 6 0 do { $e eq ')' } ? :
23 6 do { $e eq '(' } ? :
6 29 do { $e eq '1' } ? :
35 3 $e ? :
1404 1 2 if ($conditions[0] eq ")")
1410 2 0 if ($aggreg eq 'OR') { }
0 0 elsif ($aggreg eq 'AND') { }
1421 5 1 if ($conditions[0] eq ")")
1427 0 1 if ($aggreg eq 'OR') { }
1 0 elsif ($aggreg eq 'AND') { }
1438 15 8 if ($conditions[1] eq ')') { }
1445 0 6 if --$parens_count < 0
1474 0 64 $QueryHint ? :
1479 25 39 if ($args{'Wrap'})
1529 0 0 $QueryHint ? :
1540 0 0 unless ($DBIx::SearchBuilder::Handle::FIELDS_IN_TABLE{$table})
1542 0 0 unless my $sth = $self->dbh->column_info(undef, "", $table, "%")
1673 0 20 if ($args{'Timezone'})
1682 18 2 if (my $template = $self->SimpleDateTimeFunctions->{$norm_type}) { }
1782 327 0 unless ($self->HasSupportForNullsOrder)
1783 0 327 if @_
1787 0 0 if (@_)
1789 0 0 if ($mode eq 'default') { }
0 0 elsif ($mode eq 'small') { }
0 0 elsif ($mode eq 'large') { }
0 0 elsif ($mode eq 'first') { }
0 0 elsif ($mode eq 'last') { }
1810 0 0 unless $self->{'nulls_order'}
1858 0 0 if ($self->dbh)
1873 0 0 if ($self->dbh)
1877 0 0 if ($quote_char)
1878 0 0 if ($name =~ /^$quote_char(.*)$quote_char$/)
1892 0 32 unless defined $string
1904 68 2474 if ($c eq $escape_char and $in)
1905 68 0 if ($escape_char eq q[']) { }
1906 18 50 if (($chars[0] || '') eq "'")
1917 660 1882 if ($in) { }
1918 68 592 if ($c eq "'")
1919 50 18 unless ($escaped)
1931 50 1832 if ($c eq q[']) { }
0 1832 elsif (lc $c eq 'e' and ($chars[0] // '') eq q[']) { }
0 1832 elsif ($c =~ /[\d.]/ and not $placeholder =~ /\w$/) { }
1969 0 22 if $self->{'DisconnectHandleOnDestroy'}
1983 0 1 unless my $field = shift()