Branch Coverage

blib/lib/SQL/Interp.pm
Criterion Covered Total %
branch 101 126 80.1


line true false branch
56 1 0 if (UNIVERSAL::isa($_[0], 'DBI::db'))
83 76 74 if (UNIVERSAL::isa($items[0], 'SQL::Interp')) { }
0 74 elsif (UNIVERSAL::isa($items[0], 'DBI::db')) { }
90 76 74 if $state
98 12 133 if ($is_var_used)
101 16 20 unless ref $val
106 0 145 if $trace_sql_enabled
121 0 2 if (ref $item) { }
126 1 1 if ($adjacent_string_cnt == 2)
146 18 400 if (ref $item eq 'SQL::Interp::Variable')
147 16 2 unless (keys %$item == 1 and defined $item->{'value'})
154 50 368 if (ref $item eq 'SQL::Interp::SQL') { }
177 191 elsif (ref $item) { }
156 4 46 if $sql ne ''
161 24 153 if ($sql =~ /\b(NOT\s+)?IN\s*$/is) { }
8 145 elsif ($sql =~ /\bARRAY\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 2 6 if ref $item eq 'SCALAR'
188 4 4 if ref $item eq 'REF'
190 8 0 if (ref $item eq 'ARRAY') { }
200 0 4 if keys %$item == 0
209 4 18 if ref $item eq 'SCALAR'
210 14 8 if (ref $item eq 'ARRAY') { }
8 0 elsif (ref $item eq 'HASH') { }
231 2 31 if (defined $next_item and ref $next_item eq '' and $next_item =~ /\s*AS\b/is) { }
240 33 0 unless $sql eq ''
242 28 2 if defined $table_alias
249 2 20 if (keys %$item == 0) { }
256 2 32 if (not defined $val) { }
8 24 elsif (ref $val eq 'ARRAY') { }
267 14 6 if keys %$item > 1
273 0 14 unless $sql eq ''
279 27 164 unless $sql =~ /(^|\s)$/ or $item =~ /^\s/
284 16 397 if ($varobj)
302 38 161 if (ref $ele) { }
305 0 38 if ref $bind2[0]
318 2 6 if (@$list == 0) { }
337 47 0 if (ref $item eq 'ARRAY') { }
338 1 46 if @$item == 0
341 28 18 if (ref $item->[0] eq 'ARRAY') { }
18 0 elsif (ref $item->[0] eq 'HASH') { }
343 2 26 if @{$item->[0];} == 0
346 4 26 unless $is_first_row
356 2 16 if keys %{$$item[0];} == 0
360 4 16 unless $is_first_row
366 24 8 if $is_first_row
374 0 42 unless $sql eq ''
392 0 0 $idx > 0 ? :
393 0 0 defined $prev ? :
412 0 29 unless ref $value
441 0 0 ref $b eq 'SQL::Interp::SQL' ? :
442 0 0 if $inverted