Branch Coverage

blib/lib/SQL/SimpleOps.pm
Criterion Covered Total %
branch 316 660 47.8


line true false branch
197 0 2 if (defined $self->{'argv'}{'configfile'})
199 0 0 unless (stat $self->{'argv'}{'configfile'})
205 0 0 unless (defined $fh)
216 2 0 unless defined $self->{'argv'}{'interface'}
217 2 0 unless defined $self->{'argv'}{'quote'}
218 0 2 unless defined $self->{'argv'}{'connect'}
219 2 0 unless defined $self->{'argv'}{'message_log'}
220 2 0 unless defined $self->{'argv'}{'port'}
223 0 2 unless (grep /^$self->{'argv'}{'interface'}$/i, "dbi")
229 0 2 if (not defined $self->{'argv'}{'driver'}) { }
0 2 elsif (grep /^$self->{'argv'}{'driver'}$/i, 'pg', 'postgres', 'postsql', 'pgsql') { }
0 2 elsif (grep /^$self->{'argv'}{'driver'}$/i, 'mysql', 'mariadb') { }
2 0 elsif (grep /^$self->{'argv'}{'driver'}$/i, 'sqlite', 'sqlite3') { }
236 0 0 unless &_newTestServer($self)
244 0 0 unless &_newTestServer($self)
252 0 2 if ($self->{'argv'}{'db'} eq "" and $self->{'argv'}{'dbfile'} eq "")
267 0 2 if (defined $self->{'argv'}{'tables'})
269 0 0 if (ref $self->{'argv'}{'tables'} ne "HASH")
276 0 0 if (not defined $self->{'argv'}{'tables'}{$table}{'name'} or $self->{'argv'}{'tables'}{$table}{'name'} eq "")
281 0 0 if (defined $self->{'argv'}{'tables'}{$table}{'cols'})
283 0 0 if (ref $self->{'argv'}{'tables'}{$table}{'cols'} ne "HASH")
290 0 0 if ($self->{'argv'}{'tables'}{$table}{'cols'}{$field} eq "")
300 0 2 if (defined $self->{'argv'}{'message_syslog_facility'} and not $self->{'argv'}{'message_syslog_facility'} =~ /^local[0-7]$/i)
305 0 2 if (defined $self->{'argv'}{'message_syslog_service'} and $self->{'argv'}{'message_syslog_service'} =~ s/[a-zA-Z0-9\-\_]//g)
310 0 2 if (defined $self->{'argv'}{'sql_save_name'} and $self->{'argv'}{'sql_save_name'} =~ s/[a-zA-Z0-9\-\_]//g)
316 2 0 if ($self->{'argv'}{'interface'} =~ /^dbi$/i) { }
319 2 0 unless defined $self->{'argv'}{'interface_options'}{'RaiseError'}
320 2 0 unless defined $self->{'argv'}{'interface_options'}{'PrintError'}
326 2 0 if (defined $self->{'init'}{'plugin_id'} and $self->{'init'}{'plugin_id'} ne "")
334 2 2 if stat $fn
337 0 2 if ($fn eq "")
343 0 2 if ($@)
349 0 2 unless (defined $self->{'init'}{'plugin_fh'})
357 0 2 unless defined $bless
360 0 2 if $self->{'argv'}{'connect'} and $self->Open
374 0 0 if ($self->{'argv'}{'server'} eq "")
379 0 0 if ($self->{'argv'}{'port'} ne "" and $self->{'argv'}{'port'} =~ /^\D+$/ || ($self->{'argv'}{'port'} < 1 || $self->{'argv'}{'port'} > 65535))
398 0 1 if ($self->{'init'}{'plugin_fh'}->can("Open") and $self->{'init'}{'plugin_fh'}->Open)
403 1 0 if ($self->{'argv'}{'interface'} =~ /^dbi$/i)
427 0 8 unless defined $self->{'init'}{'dbh'}
432 0 8 if ($self->{'init'}{'plugin_fh'}->can("SelectCursor") and $self->{'init'}{'plugin_fh'}->SelectCursor($argv))
438 0 8 if defined $argv->{'message_log'}
439 0 8 if defined $argv->{'quote'}
440 0 8 if defined $argv->{'sql_save'}
444 0 8 if defined $argv->{'message_log'}
445 0 8 if defined $argv->{'quote'}
446 0 8 if defined $argv->{'sql_save'}
457 5 3 if ($argv->{'cursor_command'} != 1 and $argv->{'cursor_command'} != 4)
459 5 0 if (not defined $argv->{'cursor'} or $argv->{'cursor'} eq "")
461 0 5 unless (defined $argv->{'cursor_info'})
467 5 0 if (ref $argv->{'cursor_info'} eq 'HASH') { }
0 0 elsif (ref $argv->{'cursor_info'} eq 'ARRAY') { }
0 0 elsif (ref $argv->{'cursor_info'} eq 'SCALAR') { }
475 1 1 unless defined $last
2 3 if ($argv->{'cursor_command'} == 3) { }
2 1 elsif ($argv->{'cursor_command'} == 2) { }
1 0 elsif ($argv->{'cursor_command'} == 5) { }
476 1 1 unless defined $first
480 0 8 if (not defined $argv->{'cursor_key'} or ref $argv->{'cursor_key'} ne "")
485 0 8 if (defined $argv->{'where'} and ref $argv->{'where'} ne "ARRAY")
493 8 0 if (not defined $argv->{'order_by'}) { }
0 0 elsif (ref $argv->{'order_by'} eq '') { }
0 0 elsif (ref $argv->{'order_by'} eq 'ARRAY') { }
502 3 5 if ($argv->{'cursor_command'} == 1) { }
1 4 elsif ($argv->{'cursor_command'} == 2) { }
2 2 elsif ($argv->{'cursor_command'} == 3 or $argv->{'cursor_command'} == 5) { }
2 0 elsif ($argv->{'cursor_command'} == 4) { }
527 0 8 if (not defined $argv->{'limit'} or $argv->{'limit'} eq "")
533 8 0 if @order
536 8 0 unless defined $argv->{'notfound'}
539 8 0 if $self->{'init'}{'cursor'}{'rc'} = $self->_Select(%{$argv;})
545 0 0 $self->{'init'}{'cursor'}{'lines'} ? :
549 0 0 if (not defined $argv->{'cursor_info'}) { }
0 0 elsif (ref $argv->{'cursor_info'} eq 'HASH') { }
0 0 elsif (ref $argv->{'cursor_info'} eq 'ARRAY') { }
0 0 elsif (ref $argv->{'cursor_info'} eq 'SCALAR') { }
556 0 0 $argv->{'cursor_command'} == 2 ? :
564 0 0 $argv->{'cursor_command'} == 2 ? :
588 0 18 unless defined $self->{'init'}{'dbh'}
593 0 18 if ($self->{'init'}{'plugin_fh'}->can("Select") and $self->{'init'}{'plugin_fh'}->Select($argv))
599 0 18 if defined $argv->{'message_log'}
600 0 18 if defined $argv->{'quote'}
601 1 17 if defined $argv->{'sql_save'}
605 0 18 if defined $argv->{'message_log'}
606 0 18 if defined $argv->{'quote'}
607 1 17 if defined $argv->{'sql_save'}
618 0 26 unless (defined $argv->{'table'})
624 23 3 if (ref $argv->{'table'} eq '') { }
3 0 elsif (ref $argv->{'table'} eq 'ARRAY') { }
630 0 6 if ($tables_tmp{$table})
647 26 0 if (defined $argv->{'fields'}) { }
649 0 26 if (ref $argv->{'fields'} ne "ARRAY")
659 7 48 if (ref $field eq "HASH")
665 3 52 if ($field =~ /^distinct$/i) { }
0 52 elsif ($field =~ /^distinct\s+(.*)/i) { }
675 52 3 unless ($field =~ /^\\/)
677 5 46 $field =~ /^(.*?)\((.*)\)/ ? :
1 51 $field =~ /^(.*?)\((.*?)\,(.*)\)/ ? :
678 9 43 if ($value =~ /^(.*)\.(.*)$/)
681 0 9 unless (grep /^$table$/i, @tables_work)
689 3 52 if $distinct
694 0 0 if (@tables_work > 1) { }
698 0 0 unless (defined $self->{'argv'}{'tables'}{$table} and defined $self->{'argv'}{'tables'}{$table}{'cols'})
711 0 0 if (defined $self->{'argv'}{'tables'}{$tables_work[0]} and defined $self->{'argv'}{'tables'}{$tables_work[0]}{'cols'})
718 0 26 if (defined $argv->{'group_by'})
720 0 0 if (ref $argv->{'group_by'} eq '') { }
0 0 elsif (ref $argv->{'group_by'} eq 'ARRAY') { }
729 8 18 if (defined $argv->{'order_by'})
731 0 8 if (ref $argv->{'order_by'} eq '') { }
8 0 elsif (ref $argv->{'order_by'} eq 'ARRAY') { }
734 0 8 if (@{$argv->{'order_by'};} == 1)
735 0 8 if (@{$argv->{'order_by'};} % 2 != 0)
749 0 26 $self->{'init'}{'driver_id'} == 1 ? :
752 26 0 if (@fields_work) { }
757 3 52 $fields_distinct{$field} ? :
759 7 48 if (defined $fields_aliases{$field})
765 3 52 if ($field =~ /^\\(.*)/)
767 1 2 $alias ? :
775 1 51 if ($field =~ /^(.*?)\((.*?)\,(.*)\)/) { }
5 46 elsif ($field =~ /^(.*?)\((.*)\)/) { }
793 9 43 if ($field =~ /^(.*)\.(.*)$/) { }
798 0 5 $field ne $realn ? :
4 5 $alias ? :
806 43 0 if (@tables_work == 1) { }
809 0 41 $field ne $realn ? :
2 41 $alias ? :
817 0 0 $alias ? :
830 0 26 if $self->_getWhere("select", \@tables_work, $argv->{'where'}, \$where)
837 0 8 if ($field =~ /^(.*?)\.(.*?)$/) { }
847 8 0 if (@order_work)
850 5 0 $ordem == 1 ? :
3 5 $ordem == 2 ? :
863 12 14 if $where
864 0 26 if @group_work
865 8 18 if @order
866 7 19 if defined $argv->{'limit'} and $argv->{'limit'} > 0
877 26 0 if $self->_Call("command", $sql, "command_type", 0, "buffer", $argv->{'buffer'}, "buffer_options", $argv->{'buffer_options'}, "make_only", $argv->{'make_only'}, "flush", $argv->{'flush'}, "sql_save", $argv->{'sql_save'})
878 0 0 if $self->getRows
879 0 0 if $argv->{'notfound'}
899 1 1 unless defined $self->{'init'}{'dbh'}
904 0 2 if ($self->{'init'}{'plugin_fh'}->can("Delete") and $self->{'init'}{'plugin_fh'}->Delete($argv))
910 0 2 if defined $argv->{'commit'}
911 0 2 if defined $argv->{'message_log'}
912 0 2 if defined $argv->{'quote'}
913 0 2 if defined $argv->{'sql_save'}
917 0 2 if defined $argv->{'commit'}
918 0 2 if defined $argv->{'message_log'}
919 0 2 if defined $argv->{'quote'}
920 0 2 if defined $argv->{'sql_save'}
931 0 2 if (not defined $argv->{'table'} and ref $argv->{'table'} ne "")
938 0 2 if $self->_getWhere("delete", [$argv->{'table'}], $argv->{'where'}, \$where)
939 0 2 if (!defined($where) || $where eq '' and not $argv->{'force'})
946 1 1 if $where
956 2 0 if $self->_Call("command", $sql, "command_type", 1, "buffer", $argv->{'buffer'}, "buffer_options", $argv->{'buffer_options'}, "make_only", $argv->{'make_only'}, "flush", $argv->{'flush'}, "sql_save", $argv->{'sql_save'})
957 0 0 if $argv->{'notfound'}
958 0 0 if ($self->getRows == 0)
980 0 2 unless defined $self->{'init'}{'dbh'}
985 0 2 if ($self->{'init'}{'plugin_fh'}->can("Insert") and $self->{'init'}{'plugin_fh'}->Insert($argv))
991 0 2 if defined $argv->{'commit'}
992 0 2 if defined $argv->{'message_log'}
993 0 2 if defined $argv->{'quote'}
994 0 2 if defined $argv->{'sql_save'}
998 0 2 if defined $argv->{'commit'}
999 0 2 if defined $argv->{'message_log'}
1000 0 2 if defined $argv->{'quote'}
1001 0 2 if defined $argv->{'sql_save'}
1012 0 2 if (not defined $argv->{'table'} and ref $argv->{'table'} ne "")
1017 0 2 unless (defined $argv->{'fields'})
1022 1 1 if (ref $argv->{'fields'} eq 'HASH') { }
1 0 elsif (ref $argv->{'fields'} eq 'ARRAY') { }
1025 0 1 unless (defined $argv->{'values'})
1030 0 1 if (ref $argv->{'values'} ne "ARRAY")
1041 0 2 if (defined $argv->{'conflict'} and ref $argv->{'conflict'} ne "HASH")
1049 1 1 if (ref $argv->{'fields'} eq 'HASH') { }
1068 0 1 if ($no_fld == 1) { }
1070 0 0 if (ref $values eq 'ARRAY') { }
1081 0 1 if (ref $values eq 'ARRAY') { }
1096 0 2 if (defined $argv->{'conflict'})
1103 0 0 $argv->{'conflict'}{$field} =~ /^\\(.*)/ ? :
1107 0 0 $argv->{'conflict_key'} ? :
0 0 $self->{'init'}{'plugin_id'} =~ /^mysql/i || $self->{'init'}{'plugin_id'} =~ /^mariadb/i ? :
1118 2 0 if $self->_Call("command", $sql, "command_type", 1, "buffer", $argv->{'buffer'}, "buffer_options", $argv->{'buffer_options'}, "make_only", $argv->{'make_only'}, "flush", $argv->{'flush'}, "sql_save", $argv->{'sql_save'})
1136 0 2 unless defined $self->{'init'}{'dbh'}
1141 0 2 if ($self->{'init'}{'plugin_fh'}->can("Update") and $self->{'init'}{'plugin_fh'}->Update($argv))
1147 0 2 if defined $argv->{'commit'}
1148 0 2 if defined $argv->{'message_log'}
1149 0 2 if defined $argv->{'quote'}
1150 0 2 if defined $argv->{'sql_save'}
1154 0 2 if defined $argv->{'commit'}
1155 0 2 if defined $argv->{'message_log'}
1156 0 2 if defined $argv->{'quote'}
1157 0 2 if defined $argv->{'sql_save'}
1168 0 2 if (not defined $argv->{'table'} and ref $argv->{'table'} ne "")
1173 0 2 unless (defined $argv->{'fields'})
1178 0 2 if (ref $argv->{'fields'} ne "HASH")
1189 1 2 $argv->{'fields'}{$field} =~ /^\\(.*)/ ? :
1193 0 2 if $self->_getWhere("update", [$argv->{'table'}], $argv->{'where'}, \$where)
1195 0 2 if (!defined($where) || $where eq '' and not $argv->{'force'})
1202 1 1 if $where
1213 2 0 if $self->_Call("command", $sql, "command_type", 1, "buffer", $argv->{'buffer'}, "buffer_options", $argv->{'buffer_options'}, "make_only", $argv->{'make_only'}, "flush", $argv->{'flush'}, "sql_save", $argv->{'sql_save'})
1214 0 0 if $argv->{'notfound'}
1215 0 0 if ($self->getRows == 0)
1235 0 0 unless defined $argv->{'count'}
1236 0 0 unless defined $argv->{'interval'}
1238 0 0 if $count =~ /^\D+$/
1239 0 0 if $sleep =~ /^\D+$/
1243 0 0 unless $self->Open
1245 0 0 if $count and $sleep
1272 0 0 unless defined $self->{'init'}{'dbh'}
1277 0 0 if ($self->{'init'}{'plugin_fh'}->can("Call") and $self->{'init'}{'plugin_fh'}->Call($argv))
1282 0 0 if ($argv->{'command'} eq "")
1288 0 0 if defined $argv->{'commit'}
1289 0 0 if defined $argv->{'message_log'}
1290 0 0 if defined $argv->{'quote'}
1291 0 0 if defined $argv->{'sql_save'}
1295 0 0 if defined $argv->{'commit'}
1296 0 0 if defined $argv->{'message_log'}
1297 0 0 if defined $argv->{'quote'}
1298 0 0 if defined $argv->{'sql_save'}
1311 1 0 if (defined $argv->{'sql_save'} and $argv->{'sql_save'} or defined $self->{'argv'}{'sql_save'} and $self->{'argv'}{'sql_save'} and $argv->{'command_type'})
1313 0 1 if $self->Save($argv->{'command'})
1316 32 0 if $argv->{'make_only'}
1319 0 0 unless (defined $self->{'init'}{'dbh'})
1324 0 0 !defined($argv->{'flush'}) || $argv->{'flush'} ? :
1326 0 0 if (not defined $argv->{'buffer'}) { }
0 0 elsif (ref $argv->{'buffer'} eq 'HASH') { }
0 0 elsif (ref $argv->{'buffer'} eq 'ARRAY') { }
0 0 elsif (ref $argv->{'buffer'} eq 'CODE') { }
0 0 elsif (ref $argv->{'buffer'} eq 'SCALAR') { }
1327 0 0 if $flush_buffer
1328 0 0 if $flush_buffer
1338 0 0 $argv->{'command'} =~ /\;$/ ? :
1341 0 0 if (defined $sth) { }
1347 0 0 if (defined $argv->{'buffer'})
1349 0 0 if ($sth->{'NUM_OF_FIELDS'})
1353 0 0 if ($type == 1) { }
0 0 elsif ($type == 2) { }
0 0 elsif ($type == 3) { }
0 0 elsif ($type == 4) { }
1355 0 0 if &{$argv->{'buffer'};}($ref, $argv->{'buffer_options'})
1372 0 0 if $self->{'argv'}{'commit'} and $argv->{'command_type'}
1389 0 0 unless defined $self->{'init'}{'dbh'}
1409 0 0 unless defined $self->{'init'}{'dbh'}
1431 1 0 unless defined $self->{'init'}{'sql_save_ix'}
1432 1 0 unless defined $self->{'init'}{'sql_save_name'}
1436 0 0 $^O ne 'MSWin32' ? :
1 0 defined $self->{'argv'}{'sql_save_dir'} ? :
1 0 unless defined $self->{'init'}{'sql_save_dir'}
1445 1 0 $self->{'argv'}{'sql_save_bydate'} ? :
1447 1 0 unless (stat $path)
1450 0 1 if ($@)
1453 0 0 $self->{'argv'}{'sql_save_ignore'} ? :
1459 0 1 unless (defined $fh)
1462 0 0 $self->{'argv'}{'sql_save_ignore'} ? :
1488 8 25 if (ref $argv->{'table'} eq 'ARRAY') { }
25 0 elsif (ref $argv->{'table'} eq '') { }
1508 16 47 unless $where
1512 0 47 if $self->_getWhereRecursive($command, 0, $tables, $where, \@where_local)
1529 0 53 if ($where eq "")
1534 0 53 if (ref $where eq "")
1540 0 53 if (ref $where ne "ARRAY")
1552 6 78 if (ref $value1 ne "")
1555 0 6 if $self->_getWhereRecursive($command, $level + 1, $tables, $value1, \@where_aux)
1558 2 4 if $oper_pend and @where_tmp
1565 6 72 if ($value1 =~ /^(and|\&\&|or|\|\|)$/i)
1572 17 55 if ($oper_pend and @where_tmp)
1578 0 72 if ($value1 =~ /^\\/) { }
54 18 elsif (@{$tables;} == 1) { }
18 0 elsif ($value1 =~ /^(.*?)\.(.*?)$/ and grep /^$1$/, @{$tables;}) { }
1591 0 72 if ($ix >= @{$where;})
1602 34 38 if (ref $value2 eq "ARRAY")
1611 0 34 if (not defined $operator) { }
0 34 elsif ($operator =~ /^\\/) { }
4 30 elsif ($operator eq '=') { }
12 18 elsif ($operator eq '!') { }
0 18 elsif ($operator eq '!=') { }
0 18 elsif ($operator eq '<>') { }
0 18 elsif ($operator eq '<=') { }
2 16 elsif ($operator eq '<') { }
0 16 elsif ($operator eq '>=') { }
3 13 elsif ($operator eq '>') { }
1 12 elsif ($operator eq '%%') { }
2 10 elsif ($operator eq '^%') { }
2 8 elsif ($operator eq '%^') { }
1 7 elsif ($operator eq '^^') { }
0 7 elsif ($operator eq '!%%') { }
2 5 elsif ($operator eq '!^%') { }
2 3 elsif ($operator eq '!%^') { }
0 3 elsif ($operator eq '!^^') { }
1621 0 1 if @_value2 > 1
1622 1 1 if @_value2 > 1
1623 1 1 if @_value2 > 1
1624 0 1 if @_value2 > 1
1632 19 15 if ($operator eq "=" or $operator eq "!=")
1634 5 14 if (@_value2 > 1)
1636 2 3 $operator eq '!=' ? :
1637 3 2 @_value2 == 3 && $_value2[1] eq '..' ? :
1647 33 2 if (defined $value and $value ne '') { }
0 2 elsif ($operator eq '=') { }
1649 1 32 if ($value =~ /^\\(.*)/) { }
24 8 elsif (@{$tables;} == 1) { }
6 2 elsif ($value =~ /^(.*?)\.(.*?)$/ and grep /^$1$/, @{$tables;}) { }
1676 6 23 if (@where_aux > 1)
1681 28 1 if @where_aux
1685 2 36 unless (defined $value2)
1690 36 0 if (ref $value2 eq "")
1692 36 0 if ($value2 ne '') { }
1694 2 34 if ($value2 =~ /^\\(.*)/) { }
25 9 elsif (@{$tables;} == 1) { }
9 0 elsif ($value2 =~ /^(.*?)\.(.*?)$/ and grep /^$1$/, @{$tables;}) { }
1717 53 0 if (@where_tmp)
1720 6 47 if $level
1722 6 47 if $level
1801 0 35 $self->{'init'}{'schema'} && defined $self->{'argv'}{'schema'} && $self->{'argv'}{'schema'} ne '' ? :
1810 0 0 $ident ? :
35 0 !(defined $self->{'argv'}{'tables'} && defined $self->{'argv'}{'tables'}{$table} && defined $self->{'argv'}{'tables'}{$table}{'name'}) || $self->{'argv'}{'tables'}{$table}{'name'} eq $table ? :
1829 33 123 $notab ? :
0 0 $notab ? :
156 0 !(defined $self->{'argv'}{'tables'} && defined $self->{'argv'}{'tables'}{$table} && defined $self->{'argv'}{'tables'}{$table}{'cols'} && defined $self->{'argv'}{'tables'}{$table}{'cols'}{$field}) ? :
1886 0 0 if $quote eq "" or $quote eq "\"" or $quote eq "'"
1902 1 0 unless (defined $rc)
1904 0 1 if defined $self->{'init'}{'dbh'} and $self->{'init'}{'dbh'}->err
1905 0 1 if $DBI::err
1914 0 0 defined $SQL_SIMPLE_TABLE_OF_MSGS{$code} ? :
1917 0 0 if ($self->{'argv'}{'message_log'})
1919 0 0 if $self->{'argv'}{'message_log'} & 2
1921 0 0 if ($self->{'argv'}{'message_log'} & 1)
1928 0 0 $SQL_SIMPLE_TABLE_OF_MSGS{$code}{'T'} eq 'W' ? :
0 0 $SQL_SIMPLE_TABLE_OF_MSGS{$code}{'T'} eq 'S' ? :
0 0 $SQL_SIMPLE_TABLE_OF_MSGS{$code}{'T'} eq 'E' ? :