Branch Coverage

blib/lib/RDF/Query/Plan.pm
Criterion Covered Total %
branch 169 312 54.1


line true false branch
107 0 12 unless ($self->state == $self->OPEN)
135 1190 3889 if (scalar @_)
161 0 0 if (@_)
169 0 0 if (&blessed($p)) { }
0 0 elsif (ref $p) { }
170 0 0 if ($p->isa('RDF::Trine::Statement::Quad')) { }
0 0 elsif ($p->isa('RDF::Trine::Node::Nil')) { }
171 0 0 $_->isa('RDF::Trine::Node::Nil') ? :
207 582 1 defined $_ ? :
217 630 57 if ($p =~ /^[PQTNWEJVqibswu]$/) { }
0 57 elsif ($p eq 'A') { }
26 31 elsif (substr($p, 0, 1) eq '\\') { }
31 0 elsif (substr($p, 0, 1) eq '*') { }
0 0 elsif ($p =~ /^[PQTNWEJVqibswu\\*]{2,}$/) { }
222 0 0 if (&blessed($v)) { }
267 8 622 if ($p eq 's') { }
0 622 elsif ($p eq 'w') { }
0 622 elsif ($p eq 'u') { }
3 619 elsif ($p eq 'i') { }
0 619 elsif ($p eq 'b') { }
0 619 elsif ($p eq 'W') { }
589 30 elsif ($p =~ /^[PNETV]$/) { }
30 0 elsif ($p eq 'J') { }
284 0 0 if (&blessed($v)) { }
290 580 9 if (&blessed($v)) { }
292 0 580 unless $v->can('sse')
298 2 28 if ($v->isa('RDF::Query::Node::Variable')) { }
375 779 0 if (@_)
389 0 0 unless $self->[0]{'labels'}
390 0 0 if $k eq 'algebra'
402 205 341 if ($self->state == 2)
426 0 773 unless (&blessed($algebra) and $algebra->isa('RDF::Query::Algebra'))
434 24 749 if ($algebra->isa('RDF::Query::Algebra::Extend'))
436 15 9 if ($agg->isa('RDF::Query::Algebra::Aggregate'))
438 9 6 if (scalar @group == 0)
440 0 9 if (scalar @ops == 1 and $ops[0][0] eq 'COUNT(*)')
442 0 0 if ($ggp->isa('RDF::Query::Algebra::GroupGraphPattern'))
444 0 0 if (scalar @bgp == 1 and $bgp[0]->isa('RDF::Query::Algebra::BasicGraphPattern'))
447 0 0 if (scalar @triples == 1)
455 0 0 if $done
479 594 179 if ($algebra->isa('RDF::Query::Algebra::Sort') or not $algebra->is_solution_modifier)
487 16 757 if ($type eq 'Aggregate') { }
4 753 elsif ($type eq 'Construct') { }
10 743 elsif ($type eq 'Distinct') { }
37 706 elsif ($type eq 'Filter') { }
146 560 elsif ($type eq 'BasicGraphPattern') { }
205 355 elsif ($type eq 'GroupGraphPattern') { }
8 347 elsif ($type eq 'Limit') { }
14 333 elsif ($type eq 'NamedGraph') { }
3 330 elsif ($type eq 'Offset') { }
11 319 elsif ($type eq 'Optional') { }
0 319 elsif ($type eq 'Minus') { }
134 185 elsif ($type eq 'Project') { }
24 161 elsif ($type eq 'Extend') { }
0 161 elsif ($type eq 'Service') { }
1 160 elsif ($type eq 'SubSelect') { }
12 148 elsif ($type eq 'Sort') { }
133 15 elsif ($type eq 'Triple' or $type eq 'Quad') { }
5 10 elsif ($type eq 'Path') { }
2 8 elsif ($type eq 'Union') { }
0 8 elsif ($type eq 'Sequence') { }
0 8 elsif ($type eq 'Load') { }
8 0 elsif ($type eq 'Update') { }
0 0 elsif ($type eq 'Clear') { }
0 0 elsif ($type eq 'Create') { }
0 0 elsif ($type eq 'Copy') { }
0 0 elsif ($type eq 'Move') { }
0 0 elsif ($type eq 'Table') { }
514 6 271 $args{'prevent_distinguishing_bnodes'} ? :
520 1 276 if (my(@csg_plans) = $self->_csg_plans($context, $t)) { }
534 0 146 if (scalar @normal_triples == 0) { }
70 76 elsif (scalar @normal_triples == 1) { }
545 1 145 if (@csg_triples) { }
572 0 201 if ($a->isa('RDF::Query::Algebra::Service'))
573 0 0 if (scalar @input and $input[0]->isa('RDF::Query::Algebra::Service') and $a->endpoint->value eq $input[0]->endpoint->value)
575 0 0 if ($a->silent == $b->silent)
587 18 187 if (scalar @patterns == 0) { }
174 13 elsif (scalar @patterns == 1) { }
604 4 10 if ($algebra->graph->isa('RDF::Query::Node::Resource')) { }
659 3 131 if ($constant)
689 0 0 if ($row)
694 0 0 unless (substr($pstr, 0, 1) eq '{')
698 0 0 $_ eq '__DEFAULT__' ? :
708 0 0 if (my $ggp = $algebra->lhs) { }
724 0 1 if (&blessed($ag) and $ag->isa('RDF::Query::Node::Variable')) { }
726 0 0 if ($vars{$ag->name})
750 9 3 $dirname eq 'ASC' ? :
757 40 93 if ($args{'prevent_distinguishing_bnodes'}) { }
765 1 132 if (my(@csg_plans) = $self->_csg_plans($context, $st)) { }
24 108 elsif ($type eq 'Triple') { }
771 108 0 scalar @nodes == 4 ? :
785 0 0 if (@pat) { }
805 1 7 if ($dcount == 1 and $ncount == 0) { }
7 0 elsif ($dcount == 0 and $ncount == 0) { }
838 0 0 if ($constant and scalar @$constant)
844 0 779 unless $p->isa('RDF::Query::Plan')
848 0 773 unless (scalar @return_plans)
859 0 410 unless &blessed($context)
862 2 404 if (&blessed($query) and $pred->isa('RDF::Trine::Node::Resource') and scalar @{$query->get_computed_statement_generators($st->predicate->uri_value);})
865 0 2 scalar @nodes == 4 ? :
884 0 27 $opt ? :
892 14 13 if (@triples) { }
900 0 14 unless &blessed($a)
901 0 14 unless &blessed($b)
903 0 28 unless (ref $_ and &reftype($_) eq 'ARRAY')
908 0 28 if $join_type eq 'RDF::Query::Plan::Join::PushDownNestedLoop' and $b->subplans_of_type('RDF::Query::Plan::Service')
912 56 0 if (&reftype($_) eq 'ARRAY')
917 0 28 if ($method eq 'triples') { }
941 0 27 if ($opt) { }
944 27 0 if (@plans) { }
984 0 10 if ($_->isa('RDF::Query::Node::Blank'))
996 10 7 if (&blessed($path))
1002 0 7 if ($op eq '0-') { }
0 7 elsif ($op eq '1-') { }
0 7 elsif ($op eq '0-1') { }
0 7 elsif ($op =~ /^-\d+$/) { }
1012 0 7 if ($op eq '!')
1015 0 0 $RDF::Query::Plan::a->[0] eq '^' ? :
0 0 &blessed($a) ? :
1036 43 4 if (my $a = $self->_simple_path($start, $path, $end, $graph))
1043 0 4 if (&blessed($path))
1048 0 0 $graph ? :
1061 0 4 if ($op eq '!') { }
0 4 elsif ($op eq '^') { }
2 2 elsif ($op eq '/') { }
0 2 elsif ($op eq '|') { }
0 2 elsif ($op eq '?') { }
1 1 elsif ($op eq '*') { }
1 0 elsif ($op eq '+') { }
0 0 elsif ($op eq '0') { }
0 0 elsif ($op =~ /^\d+$/) { }
0 0 elsif ($op =~ /^(\d+)-(\d+)$/) { }
0 0 elsif ($op =~ /^(\d+)-$/) { }
1063 0 0 if not &blessed($_)
1065 0 0 if ($pos == $total) { }
0 0 elsif ($neg == $total) { }
1085 0 2 if ($count == 1) { }
1091 2 0 $i == $count ? :
1115 0 0 if &blessed($_)
1135 0 0 if ($count == 1) { }
1141 0 0 $i == $count ? :
1171 0 0 if ($i == 0) { }
1201 46 9 if (&blessed($path))
1202 42 4 $graph ? :
1206 0 9 unless &reftype($path) eq 'ARRAY'
1208 5 4 if ($op eq '/') { }
0 4 elsif ($op eq '^' and scalar @$path == 2 and &blessed($path->[1])) { }
0 8 elsif ($op =~ /^\d+$/ and $op == 1) { }
1212 5 3 $i == 1 ? :
1213 3 5 $i == $#{$path;} ? :
1215 2 6 unless $triple
1218 0 6 $_->isa('RDF::Query::Algebra::BasicGraphPattern') ? :
1221 0 0 $graph ? :
1291 0 55 if $block and $self->isa($block)
1294 0 55 if $self->isa($type)
1298 11 181 if (&blessed($p) and $p->isa('RDF::Query::Plan'))