Branch Coverage

blib/lib/SQL/Interp.pm
Criterion Covered Total %
branch 94 118 79.6


line true false branch
56 1 0 if (UNIVERSAL::isa($_[0], 'DBI::db'))
83 72 70 if (UNIVERSAL::isa($items[0], 'SQL::Interp')) { }
0 70 elsif (UNIVERSAL::isa($items[0], 'DBI::db')) { }
90 72 70 if $state
98 12 125 if ($is_var_used)
101 16 20 unless ref $val
106 0 137 if $trace_sql_enabled
121 0 2 if (ref $item) { }
126 1 1 if ($adjacent_string_cnt == 2)
146 18 384 if (ref $item eq 'SQL::Interp::Variable')
147 16 2 unless (keys %$item == 1 and defined $item->{'value'})
154 50 352 if (ref $item eq 'SQL::Interp::SQL') { }
169 183 elsif (ref $item) { }
156 4 46 if $sql ne ''
161 24 145 if ($sql =~ /\b(NOT\s+)?IN\s*$/is) { }
4 141 elsif ($sql =~ /\b(?:ON\s+DUPLICATE\s+KEY\s+UPDATE|SET)\s*$/is and ref $item eq 'HASH') { }
22 119 elsif ($sql =~ /\b(REPLACE|INSERT)[\w\s]*\sINTO\s*$id_match\s*$/is) { }
33 86 elsif ($sql =~ /(?:\bFROM|JOIN)\s*$/is) { }
50 36 elsif (ref $item eq 'SCALAR') { }
22 14 elsif (ref $item eq 'HASH') { }
14 0 elsif (ref $item eq 'ARRAY') { }
164 2 22 if ref $item eq 'SCALAR'
167 2 22 if ref $item eq 'REF'
169 24 0 if (ref $item eq 'ARRAY') { }
170 6 18 if (@$item == 0) { }
171 2 4 $not ? :
172 0 6 unless $sql =~ s/$id_match\s+${not}IN\s*$/$dummy_expr/is
185 0 4 if keys %$item == 0
194 4 18 if ref $item eq 'SCALAR'
195 14 8 if (ref $item eq 'ARRAY') { }
8 0 elsif (ref $item eq 'HASH') { }
216 2 31 if (defined $next_item and ref $next_item eq '' and $next_item =~ /\s*AS\b/is) { }
225 33 0 unless $sql eq ''
227 28 2 if defined $table_alias
234 2 20 if (keys %$item == 0) { }
241 2 32 if (not defined $val) { }
8 24 elsif (ref $val eq 'ARRAY') { }
252 14 6 if keys %$item > 1
258 0 14 unless $sql eq ''
264 27 156 unless $sql =~ /(^|\s)$/ or $item =~ /^\s/
269 16 381 if ($varobj)
287 38 151 if (ref $ele) { }
290 0 38 if ref $bind2[0]
303 2 6 if (@$list == 0) { }
322 47 0 if (ref $item eq 'ARRAY') { }
323 1 46 if @$item == 0
326 28 18 if (ref $item->[0] eq 'ARRAY') { }
18 0 elsif (ref $item->[0] eq 'HASH') { }
328 2 26 if @{$item->[0];} == 0
331 4 26 unless $is_first_row
341 2 16 if keys %{$$item[0];} == 0
345 4 16 unless $is_first_row
351 24 8 if $is_first_row
359 0 42 unless $sql eq ''
377 0 0 $idx > 0 ? :
378 0 0 defined $prev ? :
397 0 29 unless ref $value
426 0 0 ref $b eq 'SQL::Interp::SQL' ? :
427 0 0 if $inverted