Branch Coverage

blib/lib/SQL/SimpleOps.pm
Criterion Covered Total %
branch 325 662 49.0


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 'ARRAY') { }
0 0 elsif (ref $argv->{'order_by'} eq 'HASH') { }
0 0 elsif (ref $argv->{'order_by'} eq '') { }
503 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) { }
528 0 8 if (not defined $argv->{'limit'} or $argv->{'limit'} eq "")
534 8 0 if @order
537 8 0 unless defined $argv->{'notfound'}
540 8 0 if $self->{'init'}{'cursor'}{'rc'} = $self->_Select(%{$argv;})
546 0 0 $self->{'init'}{'cursor'}{'lines'} ? :
550 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') { }
557 0 0 $argv->{'cursor_command'} == 2 ? :
565 0 0 $argv->{'cursor_command'} == 2 ? :
589 0 25 unless defined $self->{'init'}{'dbh'}
594 0 25 if ($self->{'init'}{'plugin_fh'}->can("Select") and $self->{'init'}{'plugin_fh'}->Select($argv))
600 0 25 if defined $argv->{'message_log'}
601 0 25 if defined $argv->{'quote'}
602 1 24 if defined $argv->{'sql_save'}
606 0 25 if defined $argv->{'message_log'}
607 0 25 if defined $argv->{'quote'}
608 1 24 if defined $argv->{'sql_save'}
619 0 33 unless (defined $argv->{'table'})
625 30 3 if (ref $argv->{'table'} eq '') { }
3 0 elsif (ref $argv->{'table'} eq 'ARRAY') { }
631 0 6 if ($tables_tmp{$table})
648 26 7 if (defined $argv->{'fields'}) { }
650 0 26 if (ref $argv->{'fields'} ne "ARRAY")
660 7 48 if (ref $field eq "HASH")
666 3 52 if ($field =~ /^distinct$/i) { }
0 52 elsif ($field =~ /^distinct\s+(.*)/i) { }
676 52 3 unless ($field =~ /^\\/)
678 5 46 $field =~ /^(.*?)\((.*)\)/ ? :
1 51 $field =~ /^(.*?)\((.*?)\,(.*)\)/ ? :
679 9 43 if ($value =~ /^(.*)\.(.*)$/)
682 0 9 unless (grep /^$table$/i, @tables_work)
690 3 52 if $distinct
695 0 7 if (@tables_work > 1) { }
699 0 0 unless (defined $self->{'argv'}{'tables'}{$table} and defined $self->{'argv'}{'tables'}{$table}{'cols'})
712 0 7 if (defined $self->{'argv'}{'tables'}{$tables_work[0]} and defined $self->{'argv'}{'tables'}{$tables_work[0]}{'cols'})
719 0 33 if (defined $argv->{'group_by'})
721 0 0 if (ref $argv->{'group_by'} eq '') { }
0 0 elsif (ref $argv->{'group_by'} eq 'ARRAY') { }
730 15 18 if (defined $argv->{'order_by'})
732 1 14 if (ref $argv->{'order_by'} eq '') { }
1 13 elsif (ref $argv->{'order_by'} eq 'HASH') { }
13 0 elsif (ref $argv->{'order_by'} eq 'ARRAY') { }
745 0 33 $self->{'init'}{'driver_id'} == 1 ? :
748 26 7 if (@fields_work) { }
753 3 52 $fields_distinct{$field} ? :
755 7 48 if (defined $fields_aliases{$field})
761 3 52 if ($field =~ /^\\(.*)/)
763 1 2 $alias ? :
771 1 51 if ($field =~ /^(.*?)\((.*?)\,(.*)\)/) { }
5 46 elsif ($field =~ /^(.*?)\((.*)\)/) { }
789 9 43 if ($field =~ /^(.*)\.(.*)$/) { }
794 0 5 $field ne $realn ? :
4 5 $alias ? :
802 43 0 if (@tables_work == 1) { }
805 0 41 $field ne $realn ? :
2 41 $alias ? :
813 0 0 $alias ? :
826 0 33 if $self->_getWhere("select", \@tables_work, $argv->{'where'}, \$where)
833 13 5 if (ref $field eq 'HASH') { }
851 12 21 if $where
852 0 33 if @group_work
853 15 18 if @order
854 7 26 if defined $argv->{'limit'} and $argv->{'limit'} > 0
865 33 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'})
866 0 0 if $self->getRows
867 0 0 if $argv->{'notfound'}
881 10 8 if ($field =~ /^(.*?)\.(.*?)$/) { }
889 13 5 if ($order)
892 6 0 $order eq 'DESC' ? :
7 6 $order eq 'ASC' ? :
911 1 1 unless defined $self->{'init'}{'dbh'}
916 0 2 if ($self->{'init'}{'plugin_fh'}->can("Delete") and $self->{'init'}{'plugin_fh'}->Delete($argv))
922 0 2 if defined $argv->{'commit'}
923 0 2 if defined $argv->{'message_log'}
924 0 2 if defined $argv->{'quote'}
925 0 2 if defined $argv->{'sql_save'}
929 0 2 if defined $argv->{'commit'}
930 0 2 if defined $argv->{'message_log'}
931 0 2 if defined $argv->{'quote'}
932 0 2 if defined $argv->{'sql_save'}
943 0 2 if (not defined $argv->{'table'} and ref $argv->{'table'} ne "")
950 0 2 if $self->_getWhere("delete", [$argv->{'table'}], $argv->{'where'}, \$where)
951 0 2 if (!defined($where) || $where eq '' and not $argv->{'force'})
958 1 1 if $where
968 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'})
969 0 0 if $argv->{'notfound'}
970 0 0 if ($self->getRows == 0)
992 0 2 unless defined $self->{'init'}{'dbh'}
997 0 2 if ($self->{'init'}{'plugin_fh'}->can("Insert") and $self->{'init'}{'plugin_fh'}->Insert($argv))
1003 0 2 if defined $argv->{'commit'}
1004 0 2 if defined $argv->{'message_log'}
1005 0 2 if defined $argv->{'quote'}
1006 0 2 if defined $argv->{'sql_save'}
1010 0 2 if defined $argv->{'commit'}
1011 0 2 if defined $argv->{'message_log'}
1012 0 2 if defined $argv->{'quote'}
1013 0 2 if defined $argv->{'sql_save'}
1024 0 2 if (not defined $argv->{'table'} and ref $argv->{'table'} ne "")
1029 0 2 unless (defined $argv->{'fields'})
1034 1 1 if (ref $argv->{'fields'} eq 'HASH') { }
1 0 elsif (ref $argv->{'fields'} eq 'ARRAY') { }
1037 0 1 unless (defined $argv->{'values'})
1042 0 1 if (ref $argv->{'values'} ne "ARRAY")
1053 0 2 if (defined $argv->{'conflict'} and ref $argv->{'conflict'} ne "HASH")
1061 1 1 if (ref $argv->{'fields'} eq 'HASH') { }
1080 0 1 if ($no_fld == 1) { }
1082 0 0 if (ref $values eq 'ARRAY') { }
1093 0 1 if (ref $values eq 'ARRAY') { }
1108 0 2 if (defined $argv->{'conflict'})
1115 0 0 $argv->{'conflict'}{$field} =~ /^\\(.*)/ ? :
1119 0 0 $argv->{'conflict_key'} ? :
0 0 $self->{'init'}{'plugin_id'} =~ /^mysql/i || $self->{'init'}{'plugin_id'} =~ /^mariadb/i ? :
1130 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'})
1148 0 2 unless defined $self->{'init'}{'dbh'}
1153 0 2 if ($self->{'init'}{'plugin_fh'}->can("Update") and $self->{'init'}{'plugin_fh'}->Update($argv))
1159 0 2 if defined $argv->{'commit'}
1160 0 2 if defined $argv->{'message_log'}
1161 0 2 if defined $argv->{'quote'}
1162 0 2 if defined $argv->{'sql_save'}
1166 0 2 if defined $argv->{'commit'}
1167 0 2 if defined $argv->{'message_log'}
1168 0 2 if defined $argv->{'quote'}
1169 0 2 if defined $argv->{'sql_save'}
1180 0 2 if (not defined $argv->{'table'} and ref $argv->{'table'} ne "")
1185 0 2 unless (defined $argv->{'fields'})
1190 0 2 if (ref $argv->{'fields'} ne "HASH")
1201 1 2 $argv->{'fields'}{$field} =~ /^\\(.*)/ ? :
1205 0 2 if $self->_getWhere("update", [$argv->{'table'}], $argv->{'where'}, \$where)
1207 0 2 if (!defined($where) || $where eq '' and not $argv->{'force'})
1214 1 1 if $where
1225 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'})
1226 0 0 if $argv->{'notfound'}
1227 0 0 if ($self->getRows == 0)
1247 0 0 unless defined $argv->{'count'}
1248 0 0 unless defined $argv->{'interval'}
1250 0 0 if $count =~ /^\D+$/
1251 0 0 if $sleep =~ /^\D+$/
1255 0 0 unless $self->Open
1257 0 0 if $count and $sleep
1284 0 0 unless defined $self->{'init'}{'dbh'}
1289 0 0 if ($self->{'init'}{'plugin_fh'}->can("Call") and $self->{'init'}{'plugin_fh'}->Call($argv))
1294 0 0 if ($argv->{'command'} eq "")
1300 0 0 if defined $argv->{'commit'}
1301 0 0 if defined $argv->{'message_log'}
1302 0 0 if defined $argv->{'quote'}
1303 0 0 if defined $argv->{'sql_save'}
1307 0 0 if defined $argv->{'commit'}
1308 0 0 if defined $argv->{'message_log'}
1309 0 0 if defined $argv->{'quote'}
1310 0 0 if defined $argv->{'sql_save'}
1323 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'})
1325 0 1 if $self->Save($argv->{'command'})
1328 39 0 if $argv->{'make_only'}
1331 0 0 unless (defined $self->{'init'}{'dbh'})
1336 0 0 !defined($argv->{'flush'}) || $argv->{'flush'} ? :
1338 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') { }
1339 0 0 if $flush_buffer
1340 0 0 if $flush_buffer
1350 0 0 $argv->{'command'} =~ /\;$/ ? :
1353 0 0 if (defined $sth) { }
1359 0 0 if (defined $argv->{'buffer'})
1361 0 0 if ($sth->{'NUM_OF_FIELDS'})
1365 0 0 if ($type == 1) { }
0 0 elsif ($type == 2) { }
0 0 elsif ($type == 3) { }
0 0 elsif ($type == 4) { }
1367 0 0 if &{$argv->{'buffer'};}($ref, $argv->{'buffer_options'})
1384 0 0 if $self->{'argv'}{'commit'} and $argv->{'command_type'}
1401 0 0 unless defined $self->{'init'}{'dbh'}
1421 0 0 unless defined $self->{'init'}{'dbh'}
1443 1 0 unless defined $self->{'init'}{'sql_save_ix'}
1444 1 0 unless defined $self->{'init'}{'sql_save_name'}
1448 0 0 $^O ne 'MSWin32' ? :
1 0 defined $self->{'argv'}{'sql_save_dir'} ? :
1 0 unless defined $self->{'init'}{'sql_save_dir'}
1457 1 0 $self->{'argv'}{'sql_save_bydate'} ? :
1459 1 0 unless (stat $path)
1462 0 1 if ($@)
1465 0 0 $self->{'argv'}{'sql_save_ignore'} ? :
1471 0 1 unless (defined $fh)
1474 0 0 $self->{'argv'}{'sql_save_ignore'} ? :
1500 8 25 if (ref $argv->{'table'} eq 'ARRAY') { }
25 0 elsif (ref $argv->{'table'} eq '') { }
1520 23 47 unless $where
1524 0 47 if $self->_getWhereRecursive($command, 0, $tables, $where, \@where_local)
1541 0 53 if ($where eq "")
1546 0 53 if (ref $where eq "")
1552 0 53 if (ref $where ne "ARRAY")
1564 6 78 if (ref $value1 ne "")
1567 0 6 if $self->_getWhereRecursive($command, $level + 1, $tables, $value1, \@where_aux)
1570 2 4 if $oper_pend and @where_tmp
1577 6 72 if ($value1 =~ /^(and|\&\&|or|\|\|)$/i)
1584 17 55 if ($oper_pend and @where_tmp)
1590 0 72 if ($value1 =~ /^\\/) { }
54 18 elsif (@{$tables;} == 1) { }
18 0 elsif ($value1 =~ /^(.*?)\.(.*?)$/ and grep /^$1$/, @{$tables;}) { }
1603 0 72 if ($ix >= @{$where;})
1614 34 38 if (ref $value2 eq "ARRAY")
1623 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 '!^^') { }
1633 0 1 if @_value2 > 1
1634 1 1 if @_value2 > 1
1635 1 1 if @_value2 > 1
1636 0 1 if @_value2 > 1
1644 19 15 if ($operator eq "=" or $operator eq "!=")
1646 5 14 if (@_value2 > 1)
1648 2 3 $operator eq '!=' ? :
1649 3 2 @_value2 == 3 && $_value2[1] eq '..' ? :
1659 33 2 if (defined $value and $value ne '') { }
0 2 elsif ($operator eq '=') { }
1661 1 32 if ($value =~ /^\\(.*)/) { }
24 8 elsif (@{$tables;} == 1) { }
6 2 elsif ($value =~ /^(.*?)\.(.*?)$/ and grep /^$1$/, @{$tables;}) { }
1688 6 23 if (@where_aux > 1)
1693 28 1 if @where_aux
1697 2 36 unless (defined $value2)
1702 36 0 if (ref $value2 eq "")
1704 36 0 if ($value2 ne '') { }
1706 2 34 if ($value2 =~ /^\\(.*)/) { }
25 9 elsif (@{$tables;} == 1) { }
9 0 elsif ($value2 =~ /^(.*?)\.(.*?)$/ and grep /^$1$/, @{$tables;}) { }
1729 53 0 if (@where_tmp)
1732 6 47 if $level
1734 6 47 if $level
1813 0 42 $self->{'init'}{'schema'} && defined $self->{'argv'}{'schema'} && $self->{'argv'}{'schema'} ne '' ? :
1822 0 0 $ident ? :
42 0 !(defined $self->{'argv'}{'tables'} && defined $self->{'argv'}{'tables'}{$table} && defined $self->{'argv'}{'tables'}{$table}{'name'}) || $self->{'argv'}{'tables'}{$table}{'name'} eq $table ? :
1841 33 133 $notab ? :
0 0 $notab ? :
166 0 !(defined $self->{'argv'}{'tables'} && defined $self->{'argv'}{'tables'}{$table} && defined $self->{'argv'}{'tables'}{$table}{'cols'} && defined $self->{'argv'}{'tables'}{$table}{'cols'}{$field}) ? :
1898 0 0 if $quote eq "" or $quote eq "\"" or $quote eq "'"
1914 1 0 unless (defined $rc)
1916 0 1 if defined $self->{'init'}{'dbh'} and $self->{'init'}{'dbh'}->err
1917 0 1 if $DBI::err
1926 0 0 defined $SQL_SIMPLE_TABLE_OF_MSGS{$code} ? :
1929 0 0 if ($self->{'argv'}{'message_log'})
1931 0 0 if $self->{'argv'}{'message_log'} & 2
1933 0 0 if ($self->{'argv'}{'message_log'} & 1)
1940 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' ? :