Branch Coverage

blib/lib/SQL/Interp.pm
Criterion Covered Total %
branch 103 128 80.4


line true false branch
17 5 22 if ($fn eq ':all')
21 0 22 unless $export{$fn}
23 2 20 if (ref $_[0] eq 'HASH')
25 2 0 if defined $arg->{'-as'}
80 83 81 if UNIVERSAL::isa($items[0], 'SQL::Interp') or UNIVERSAL::isa($items[0], 'DBI::db')
88 12 147 if ($is_var_used)
91 16 20 unless ref $val
96 0 159 if $trace_sql_enabled
111 0 2 if (ref $item) { }
116 1 1 if ($adjacent_string_cnt == 2)
136 18 428 if (ref $item eq 'SQL::Interp::Variable')
137 16 2 unless (keys %$item == 1 and defined $item->{'value'})
144 50 396 if (ref $item eq 'SQL::Interp::SQL') { }
191 205 elsif (ref $item) { }
146 4 46 if $sql ne ''
151 30 161 if ($sql =~ /\b(NOT\s+)?IN\s*$/is) { }
8 153 elsif ($sql =~ /\bARRAY\s*$/is) { }
4 149 elsif ($sql =~ /\b(?:ON\s+DUPLICATE\s+KEY\s+UPDATE|SET)\s*$/is and ref $item eq 'HASH') { }
26 123 elsif ($sql =~ /\b(REPLACE|INSERT)[\w\s]*\sINTO\s*$id_match\s*$/is) { }
33 90 elsif ($sql =~ /(?:\bFROM|JOIN)\s*$/is and not $sql =~ /DISTINCT\s+FROM\s*$/) { }
54 36 elsif (ref $item eq 'SCALAR') { }
22 14 elsif (ref $item eq 'HASH') { }
14 0 elsif (ref $item eq 'ARRAY') { }
154 2 28 if ref $item eq 'SCALAR'
157 2 28 if ref $item eq 'REF'
159 30 0 if (ref $item eq 'ARRAY') { }
160 12 18 if (@$item == 0) { }
161 2 10 $not ? :
162 0 12 unless $sql =~ s/$id_match\s+${not}IN\s*$/$dummy_expr/is
175 2 6 if ref $item eq 'SCALAR'
178 4 4 if ref $item eq 'REF'
180 8 0 if (ref $item eq 'ARRAY') { }
190 0 4 if keys %$item == 0
199 8 18 if ref $item eq 'SCALAR'
200 18 8 if (ref $item eq 'ARRAY') { }
8 0 elsif (ref $item eq 'HASH') { }
221 2 31 if (defined $next_item and ref $next_item eq '' and $next_item =~ /\s*AS\b/is) { }
230 33 0 unless $sql eq ''
232 28 2 if defined $table_alias
239 2 20 if (keys %$item == 0) { }
246 2 32 if (not defined $val) { }
8 24 elsif (ref $val eq 'ARRAY') { }
257 14 6 if keys %$item > 1
263 0 14 unless $sql eq ''
269 27 178 unless $sql =~ /(^|\s)$/ or $item =~ /^\s/
274 16 425 if ($varobj)
292 38 165 if (ref $ele) { }
295 0 38 if ref $bind2[0]
308 2 6 if (@$list == 0) { }
327 47 0 if (ref $item eq 'ARRAY') { }
328 1 46 if @$item == 0
331 28 18 if (ref $item->[0] eq 'ARRAY') { }
18 0 elsif (ref $item->[0] eq 'HASH') { }
333 2 26 if @{$item->[0];} == 0
336 4 26 unless $is_first_row
346 2 16 if keys %{$$item[0];} == 0
350 4 16 unless $is_first_row
356 24 8 if $is_first_row
364 0 42 unless $sql eq ''
382 0 0 $idx > 0 ? :
383 0 0 defined $prev ? :
402 0 29 unless ref $value
431 0 0 ref $b eq 'SQL::Interp::SQL' ? :
432 0 0 if $inverted