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 247 223 if 0 < scalar @_
119 20 170 if 0 < scalar @_
120 253 231 if 0 < scalar @_
121 76 163 if 0 < scalar @_
122 10 203 if 0 < scalar @_
123 9 189 if 0 < scalar @_
124 46 58 if 0 < scalar @_
125 9 63 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 1575 unless defined $id
181 1516 59 if defined $node
220 42 13678 if /^\+-+\+\z/u
221 145 13533 if /^[-\x{2500}\x{2550}]+\z/u
222 32 13501 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 13501 if /^\+-+\+\z/u
226 16 13485 if /^\x{2514}\x{2500}+\x{2518}\z/u
227 16 13469 if /^\x{255a}\x{2550}+\x{255d}\z/u
228 16 13453 if /^\x{250c}\x{2500}+\x{2510}\z/u
229 16 13437 if /^\x{2554}\x{2550}+\x{2557}\z/u
244 204 13233 if /^\s*QUERY PLAN\s*\z/u
247 199 13034 if /^\(\d+ rows?\)\z/u
268 1 515 if (0 == scalar @_)
271 0 515 if (1 == scalar @_) { }
0 515 elsif (1 == scalar(@_) % 2) { }
272 0 0 if ('HASH' eq ref $_[0]) { }
286 179 336 if ($args{'source_file'}) { }
336 0 elsif ($args{'source'}) { }
287 1 178 if $args{'source'}
292 47 289 if (&Encode::is_utf8($args{'source'})) { }
332 199 4395 unless $self->{'top_node'}
351 67 445 if ($source =~ m[^\s*]mu) { }
70 375 elsif ($source =~ / ^ \s* \[ \s* \{ \s* "Plan" \s* : \s* \{ /msux) { }
4 371 elsif ($source =~ / ^ \s* \{ \s* "Query \s+ Text" \s* : \s* ".*", \s* "Plan" \s* : \s* \{ .* \} \s* \z /msux) { }
66 305 elsif ($source =~ / ^ \s* - \s+ Plan: \s* \n /msux) { }
4 301 elsif ($source =~ / ^ \s* Query \s+ Text: \s+ ".*" \s+ Plan: \s* \n /msux) { }
422 0 512 unless defined $self->{'top_node'}
425 99 413 unless $self->top_node->is_analyzed
428 22 1269 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 512 unless defined $self->{'top_node'}
476 99 413 unless $self->top_node->is_analyzed
479 34 1257 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 512 unless defined $self->{'top_node'}
581 99 413 unless $self->top_node->is_analyzed
595 34 1257 if $node->initplans
596 24 1267 if $node->subplans
597 22 1269 if $node->ctes
600 22 1269 if defined $node->workers_launched
603 544 747 if $node->sub_nodes
641 8 83 if ($self->planning_buffers)
648 25 66 if ($self->planning_time)
651 5 86 if ($self->trigger_times)
656 4 87 if ($self->jit)
659 34 57 if ($self->execution_time)
662 17 74 if ($self->total_runtime)
695 38 12 if $self->planning_time
696 16 34 if $self->planning_buffers
697 50 0 if $self->execution_time
698 0 50 if $self->total_runtime
699 10 40 if $self->trigger_times
700 0 50 if $self->query
701 0 50 if $self->settings
703 8 42 if ($self->jit)
729 15 2 unless ($anonymizer)
737 14 3 if 0 == scalar @extra_args
739 3 0 if 1 == scalar @extra_args