Branch Coverage

blib/lib/DBD/Gofer.pm
Criterion Covered Total %
branch 137 192 71.3


line true false branch
54 0 52 if $drh
58 52 0 unless ($methods_already_installed++)
86 0 4 if @_
88 2 2 if defined $$h{'go_cache'}
97 22 5566 if (my $warnings = $response->warnings)
104 1535 4053 if defined $err
116 0 4342 unless defined &{$full_method;}
119 0 4342 unless $full_method =~ /^DBI::(\w\w)::(\w+)$/
123 4202 140 if defined &{$driver_method;}
125 100 40 if ($type eq 'db') { }
158 0 706 unless my $remote_dsn = $dsn =~ s/;?\bdsn=(.*)$// && $1
161 1 705 if ($$attr{'go_bypass'})
177 705 0 unless (ref $go_attr{'go_policy'})
179 705 0 unless $policy_class =~ /::/
181 0 705 unless _load_class($policy_class)
184 0 705 unless $go_attr{'go_policy'} = eval { do { $policy_class->new(\%go_attr) } }
190 4 701 if ($go_attr{'go_cache'} and not ref $go_attr{'go_cache'})
192 4 0 if $cache_class eq '1'
193 0 4 unless _load_class($cache_class)
195 0 4 unless $go_attr{'go_cache'} = eval { do { $cache_class->new } }
202 0 705 unless my $transport_class = delete $go_attr{'go_transport'}
204 705 0 unless $transport_class =~ /::/
206 0 705 unless _load_class($transport_class)
208 0 705 unless my $go_transport = eval { do { $transport_class->new(\%go_attr) } }
212 0 705 unless my $go_request = eval { do { my $go_attr = {%$attr}; if ($user) { $$go_attr{'Username'} = $user; $$go_attr{'Password'} = $auth; } ; delete @{$go_attr;}{'Profile', 'HandleError', 'HandleSetErr', 'Callbacks'}; delete @{$go_attr;}{'RootClass', 'DbTypeSubclass'}; $go_connect_method ||= $go_policy->connect_method($remote_dsn, $go_attr) || 'connect'; $request_class->new({'dbh_connect_call', [$go_connect_method, $remote_dsn, $user, $auth, $go_attr]}) } }
215 13 692 if ($user)
244 520 185 unless ($skip_connect_check)
245 26 494 unless ($dbh->go_dbh_method(undef, 'ping'))
246 26 0 if $dbh->err
258 1414 0 if eval { do { require $pm } }
288 1065 2984 if $dbh_attribute_update eq 'every' or $$dbh{'go_request_count'} == 1
292 0 4049 if $$meta{'go_last_insert_id_args'}
295 0 4049 unless my $transport = $$dbh{'go_transport'}
298 0 4049 if defined $$dbh{'go_cache'}
303 0 4049 unless $$dbh{'go_response'} = $response
306 0 4049 unless UNIVERSAL::isa($response, 'DBI::Gofer::Response')
309 1039 3010 if (my $dbh_attributes = $response->dbh_attributes)
312 1039 0 if (my $installed_methods = delete $$dbh_attributes{'dbi_installed_methods'})
313 570 469 if $$dbh{'go_request_count'} == 1
323 10 4039 if (my $resultset_list = $response->sth_resultsets) { }
0 4039 elsif (not $rv) { }
343 54 3995 wantarray ? :
363 0 205 if ($$dbh{'dbi_default_methods'}{$method} and $$dbh{'go_policy'}->skip_default_methods)
370 185 20 if (my $cache_it = $$dbh{'go_policy'}->$policy_name(undef, $dbh, @_))
377 108 0 ref $_ eq 'HASH' ? :
0 108 ref $_ eq 'ARRAY' ? :
74 108 !ref($_) ? :
379 58 127 if ($rv = $$cache{$cache_key})
383 0 58 if UNIVERSAL::isa($cache_rv[0], 'DBI::st')
384 0 58 wantarray ? :
389 46 101 wantarray ? :
393 127 20 if ($cache)
399 127 0 unless UNIVERSAL::isa($cache_rv[0], 'DBI::st')
403 46 101 wantarray ? :
422 0 18 if ($$dbh{'dbi_default_methods'}{$method} and $$dbh{'go_policy'}->skip_default_methods)
431 0 18 if ($locally)
432 0 0 if ref $locally eq 'CODE'
461 6 51 unless $dbh->SUPER::FETCH('Active')
464 24 27 $skip_ping ? :
469 0 0 unless my $response = $$dbh{'go_response'}
481 7 2379 if ($attrib =~ /^[a-z]/ and not $attrib =~ /^go_/)
493 686 6587 if ($attrib eq 'AutoCommit')
494 0 686 unless $value
495 686 0 $value ? :
497 778 14 if $dbh_local_store_attrib{$attrib} or $attrib =~ /^private_/ or not $dbh->FETCH('Active')
507 10 0 if $DBD::Gofer::xxh_local_store_attrib_if_same_value{$attrib} and do { my $crnt = $dbh->FETCH($attrib); local $^W; defined $value ^ defined $crnt ? 0 : $value eq $crnt }
510 0 10 defined $value ^ defined $crnt ? :
516 4 0 if $dbh->FETCH('Warn')
529 0 1084 unless $dbh->FETCH('Active')
532 34 1050 if $attr
542 1064 20 if $attr and not %$attr
557 574 510 unless ($skip_prepare_check)
558 72 502 unless $sth->go_sth_method
586 655 884 if (my $ParamValues = $$sth{'ParamValues'})
592 0 655 if (@params > 9 and ($$sth{'Database'}{'go_dsn'} || '') =~ /dbi:Sybase/)
605 0 1539 unless my $dbh = $$sth{'Database'}
610 965 574 if $$sth{'go_method_calls'}
614 0 1539 if $$meta{'go_last_insert_id_args'}
619 1383 156 if $dbh_attribute_update eq 'every' or $$dbh{'go_request_count'} == 1
623 0 1539 unless my $transport = $$sth{'go_transport'}
626 2 1537 if defined $$sth{'go_cache'}
631 0 1539 unless $$sth{'go_response'} = $response
635 1395 144 if (my $dbh_attributes = $response->dbh_attributes)
645 1467 72 if ($response->sth_resultsets) { }
663 0 3876 if defined $attr
683 96 1657 unless (my $response = $$sth{'go_response'})
689 0 1657 unless my $resultset_list = $response->sth_resultsets
692 180 1477 unless my $meta = shift @$resultset_list
706 950 527 if (($NUM_OF_FIELDS || 0) > 0)
707 678 272 $rowset ? :
709 272 678 if defined $err
711 678 272 if $rowset
739 2969 153 if @$resultset
755 30 182 if ref $slice or defined $max_rows
770 3384 0 if $sth_local_store_attrib{$attrib} or $attrib =~ /^private_/
778 0 0 if $sth->FETCH('Warn')