Branch Coverage

blib/lib/Data/ObjectDriver/SQL.pm
Criterion Covered Total %
branch 97 126 76.9


line true false branch
38 0 13 if (builtin::blessed($term) and $term->isa('Data::ObjectDriver::SQL')) { }
52 5 3 ref $joins eq 'ARRAY' ? :
63 1 0 ref $hint->{'list'} eq 'ARRAY' ? :
72 14 18 if (@{$stmt->select;})
74 1 13 if $stmt->distinct
79 0 19 if (builtin::blessed($col) and $col->isa('Data::ObjectDriver::SQL')) { }
84 19 0 if ($alias) { }
85 15 4 /(?:^|\.)\Q$alias\E$/ ? :
96 0 32 unless $stmt->from
97 8 24 if ($stmt->joins and @{$stmt->joins;})
102 8 3 unless $initial_table_written++
112 1 7 if @from
117 25 7 if (@from)
120 0 26 if (builtin::blessed($from) and $from->isa('Data::ObjectDriver::SQL')) { }
139 3 28 if ($comment and $comment =~ /([ 0-9a-zA-Z.:;()_#&,]+)/)
140 3 0 if $1
152 0 0 if ($alias)
160 28 4 unless my $n = $stmt->limit
162 1 3 if $n =~ /\D/
163 1 2 $stmt->offset ? :
171 10 54 if (my $attribute = $stmt->$set)
172 3 7 ref $attribute eq 'ARRAY' ? :
174 8 5 $_->{'desc'} ? :
184 34 34 $stmt->where && @{$stmt->where;} ? :
191 1 31 $stmt->having && @{$stmt->having;} ? :
199 1 5 if defined $escape_char and length $escape_char > 2
208 0 30 unless $col =~ /^[\w\.]+$/
219 6 3 if ($where)
233 0 13 unless (ref $t)
234 0 0 if uc($t) =~ /^-?(OR|AND|OR_NOT|AND_NOT)$/
239 11 2 if (ref $t eq 'HASH') { }
2 0 elsif (ref $t eq 'ARRAY') { }
245 10 0 if ($term)
250 9 2 if @out
255 0 2 if ($where)
260 3 6 @out ? :
9 4 if $out
278 1 0 if (my $orig = $stmt->select_map_reverse->{$col})
279 0 1 if (builtin::blessed($orig) and $orig->isa('Data::ObjectDriver::SQL')) { }
296 11 51 if (ref $val eq 'ARRAY') { }
20 31 elsif (ref $val eq 'HASH') { }
9 22 elsif (ref $val eq 'SCALAR') { }
1 21 elsif (ref $val eq 'REF') { }
297 9 2 if (ref $val->[0] or ($val->[0] || '') eq '-and') { }
300 5 4 if ($val->[0] eq "-and")
313 0 2 if $m = $stmt->column_mutator
319 0 20 if $m = $stmt->column_mutator
321 2 18 if ($op eq 'IN' || $op eq 'NOT IN' and ref $val->{'value'} eq 'ARRAY') { }
1 17 elsif ($op eq 'IN' || $op eq 'NOT IN' and ref $val->{'value'} eq 'REF') { }
1 16 elsif ($op eq 'BETWEEN' and ref $val->{'value'} eq 'ARRAY') { }
329 0 1 if @{$val->{'value'};} != 2
334 1 15 if (ref $value eq 'SCALAR') { }
0 15 elsif (builtin::blessed($value) and $value->isa('Data::ObjectDriver::SQL')) { }
342 6 9 if $val->{'escape'} and $op =~ /^(?:NOT\s+)?I?LIKE$/
347 0 9 if $m = $stmt->column_mutator
350 0 1 if $m = $stmt->column_mutator
355 0 21 if $m = $stmt->column_mutator
356 20 1 if (defined $val) { }
368 3 1 if (@$val) { }
371 1 0 if ($op eq 'IN') { }
0 0 elsif ($op eq 'NOT IN') { }
383 34 3 unless $hint and ref $hint eq "HASH"
384 3 0 if ($hint->{'list'} and @{$hint->{'list'};})