Branch Coverage

blib/lib/Pg/Explain.pm
Criterion Covered Total %
branch 139 164 84.7


line true false branch
117 0 168 if 0 < scalar @_
118 277 270 if 0 < scalar @_
119 33 209 if 0 < scalar @_
120 283 283 if 0 < scalar @_
121 76 189 if 0 < scalar @_
122 10 229 if 0 < scalar @_
123 13 237 if 0 < scalar @_
124 47 62 if 0 < scalar @_
125 9 67 if 0 < scalar @_
129 3 0 if ($self->top_node->buffers)
130 2 1 if $self->planning_buffers
133 0 0 if $self->planning_buffers
147 16 10 if ($self->trigger_times) { }
179 0 1639 unless defined $id
181 1580 59 if defined $node
220 42 15268 if /^\+-+\+\z/u
221 170 15098 if /^[-\x{2500}\x{2550}]+\z/u
222 32 15066 if /^(?:\x{251c}|\x{255f}|\x{2560}|\x{255e})[\x{2500}\x{2550}]+(?:\x{2524}|\x{2562}|\x{2563}|\x{2561})\z/u
225 0 15066 if /^\+-+\+\z/u
226 16 15050 if /^\x{2514}\x{2500}+\x{2518}\z/u
227 16 15034 if /^\x{255a}\x{2550}+\x{255d}\z/u
228 16 15018 if /^\x{250c}\x{2500}+\x{2510}\z/u
229 16 15002 if /^\x{2554}\x{2550}+\x{2557}\z/u
244 229 14773 if /^\s*QUERY PLAN\s*\z/u
247 224 14549 if /^\(\d+ rows?\)\z/u
268 1 545 if (0 == scalar @_)
271 0 545 if (1 == scalar @_) { }
0 545 elsif (1 == scalar(@_) % 2) { }
272 0 0 if ('HASH' eq ref $_[0]) { }
286 183 362 if ($args{'source_file'}) { }
362 0 elsif ($args{'source'}) { }
287 1 182 if $args{'source'}
292 48 314 if (&Encode::is_utf8($args{'source'})) { }
332 199 4687 unless $self->{'top_node'}
351 68 474 if ($source =~ m[^\s*]mu) { }
80 394 elsif ($source =~ / ^ \s* \[ \s* \{ \s* "Plan" \s* : \s* \{ /msux) { }
4 390 elsif ($source =~ / ^ \s* \{ \s* "Query \s+ Text" \s* : \s* ".*", \s* "Plan" \s* : \s* \{ .* \} \s* \z /msux) { }
67 323 elsif ($source =~ / ^ \s* - \s+ Plan: \s* \n /msux) { }
4 319 elsif ($source =~ / ^ \s* Query \s+ Text: \s+ ".*" \s+ Plan: \s* \n /msux) { }
422 0 542 unless defined $self->{'top_node'}
425 99 443 unless $self->top_node->is_analyzed
428 22 1333 if $_->ctes
435 0 22 if 0 == scalar @cte_scans
442 0 31 if 0 == scalar @matching_cte_scans
451 0 31 unless $total_time_of_scans
452 8 23 unless $cte_total_time
473 0 542 unless defined $self->{'top_node'}
476 99 443 unless $self->top_node->is_analyzed
479 34 1321 if $_->initplans
493 1 36 unless $initnode->total_inclusive_time
502 22 14 if ($parent->initplans_metainfo->[$idx])
508 30 0 if $element =~ s/\A\$(\d+)\z/$1/u
530 22 32 unless $explicit_re
531 9 23 unless $user->extra_info
533 18 5 if $full_extra_info =~ /$explicit_re/u
543 17 19 if (0 < scalar @explicitnodes and $explicittime > $initnode->total_inclusive_time) { }
19 0 elsif ($implicittime > $initnode->total_inclusive_time) { }
556 0 48 unless $node->total_exclusive_time
578 0 542 unless defined $self->{'top_node'}
581 99 443 unless $self->top_node->is_analyzed
595 34 1321 if $node->initplans
596 24 1331 if $node->subplans
597 22 1333 if $node->ctes
600 32 1323 if defined $node->workers_launched
603 576 779 if $node->sub_nodes
641 15 98 if ($self->planning_buffers)
648 42 71 if ($self->planning_time)
651 5 108 if ($self->trigger_times)
656 6 107 if ($self->jit)
659 56 57 if ($self->execution_time)
662 17 96 if ($self->total_runtime)
695 42 12 if $self->planning_time
696 16 38 if $self->planning_buffers
697 54 0 if $self->execution_time
698 0 54 if $self->total_runtime
699 10 44 if $self->trigger_times
700 0 54 if $self->query
701 0 54 if $self->settings
703 12 42 if ($self->jit)
729 16 2 unless ($anonymizer)
737 15 3 if 0 == scalar @extra_args
739 3 0 if 1 == scalar @extra_args