Branch Coverage

blib/lib/Attean/QueryPlanner.pm
Criterion Covered Total %
branch 77 194 39.6


line true false branch
113 134 0 if ($model->does("Attean::API::CostPlanner"))
115 2 132 if (@plans) { }
122 0 132 unless $algebra
129 8 124 if ($algebra->isa('Attean::Algebra::Query') or $algebra->isa('Attean::Algebra::Update')) { }
69 55 elsif ($algebra->isa('Attean::Algebra::BGP')) { }
11 44 elsif ($algebra->isa('Attean::Algebra::Join')) { }
6 38 elsif ($algebra->isa('Attean::Algebra::Distinct') or $algebra->isa('Attean::Algebra::Reduced')) { }
6 32 elsif ($algebra->isa('Attean::Algebra::Filter')) { }
3 29 elsif ($algebra->isa('Attean::Algebra::OrderBy')) { }
0 29 elsif ($algebra->isa('Attean::Algebra::LeftJoin')) { }
0 29 elsif ($algebra->isa('Attean::Algebra::Minus')) { }
8 21 elsif ($algebra->isa('Attean::Algebra::Project')) { }
10 11 elsif ($algebra->isa('Attean::Algebra::Graph')) { }
0 11 elsif ($algebra->isa('Attean::Algebra::Table')) { }
4 7 elsif ($algebra->isa('Attean::Algebra::Service')) { }
0 7 elsif ($algebra->isa('Attean::Algebra::Slice')) { }
0 7 elsif ($algebra->isa('Attean::Algebra::Union')) { }
1 6 elsif ($algebra->isa('Attean::Algebra::Extend')) { }
1 5 elsif ($algebra->isa('Attean::Algebra::Group')) { }
4 1 elsif ($algebra->isa('Attean::Algebra::Ask')) { }
0 1 elsif ($algebra->isa('Attean::Algebra::Path')) { }
0 1 elsif ($algebra->isa('Attean::Algebra::Construct')) { }
1 0 elsif ($algebra->isa('Attean::Algebra::Describe')) { }
0 0 elsif ($algebra->isa('Attean::Algebra::Clear')) { }
0 0 elsif ($algebra->isa('Attean::Algebra::Add')) { }
0 0 elsif ($algebra->isa('Attean::Algebra::Modify')) { }
0 0 elsif ($algebra->isa('Attean::Algebra::Load')) { }
0 0 elsif ($algebra->isa('Attean::Algebra::Create')) { }
0 0 elsif ($algebra->isa('Attean::Algebra::Sequence')) { }
140 6 294 if ($_->does("Attean::API::Blank"))
143 6 0 unless (exists $blanks{$id})
150 6 94 if ($changed)
168 12 26 if ($p->distinct) { }
173 0 26 if ($self->_comparators_are_stable_and_cover_vars($cmps, @vars)) { }
189 0 12 if ($t->isa("Attean::ExistsExpression"))
192 0 0 unless ($plan->does("Attean::API::BindingSubstitutionPlan"))
203 0 6 if ($changed)
214 3 3 if ($expr->isa('Attean::ValueExpression') and $expr->value->does('Attean::API::Variable')) { }
236 3 0 if (scalar @cmps == 1 and $cmps[0]->expression->isa('Attean::ValueExpression') and $cmps[0]->expression->value->does('Attean::API::Variable')) { }
270 7 7 $vars_key eq join(' ', sort(@{$_->in_scope_variables;})) ? :
277 5 5 if ($graph->does('Attean::API::Term')) { }
278 2 3 if (my $available = $args{'available_graphs'})
281 1 1 unless (&any(sub {
296 2 3 if (my $available = $args{'available_graphs'})
306 0 3 if $ignore{$graph->value}
315 1 4 if (scalar @branches == 1) { }
327 0 0 if (scalar @$rows < $self->table_threshold) { }
403 0 0 if (scalar @algebra) { }
0 0 elsif ($path->isa('Attean::Algebra::ZeroOrMorePath') or $path->isa('Attean::Algebra::OneOrMorePath')) { }
0 0 elsif ($path->isa('Attean::Algebra::ZeroOrOnePath')) { }
406 0 0 if ($pa->isa('Attean::TriplePattern')) { }
409 0 0 if (scalar @triples)
416 0 0 if (scalar @triples)
433 0 0 $path->isa('Attean::Algebra::OneOrMorePath') ? :
441 0 0 if ($s_var and not $o_var) { }
497 0 0 $algebra->drop ? :
499 0 0 if ($target eq 'GRAPH') { }
506 0 0 if ($target eq 'ALL') { }
509 0 0 if ($target eq 'DEFAULT' and $default{$graph->value}) { }
0 0 elsif ($target eq 'NAMED' and not $default{$graph->value}) { }
522 0 0 if (my $from = $algebra->source) { }
532 0 0 if (my $g = $algebra->destination) { }
542 0 0 if ($default_dest and $default_source) { }
0 0 elsif ($default_dest or $default_source) { }
0 0 elsif ($algebra->source->equals($algebra->destination)) { }
550 0 0 if ($run_update)
551 0 0 if ($algebra->drop_destination)
552 0 0 $algebra->has_destination ? :
563 0 0 if ($algebra->drop_source)
564 0 0 $algebra->has_source ? :
568 0 0 scalar @plans == 1 ? :
571 0 0 unless ($child)
577 0 0 unless $dataset->{'default'}
578 0 0 unless $dataset->{'named'}
583 0 0 if (scalar @default or scalar @named) { }
598 0 0 if (scalar @$d)
602 0 0 if (scalar @$i)
617 0 0 $algebra->has_graph ? :
660 0 0 if (scalar @rest == 0) { }
683 0 0 if ($path->isa('Attean::Algebra::SequencePath')) { }
0 0 elsif ($path->isa('Attean::Algebra::InversePath')) { }
0 0 elsif ($path->isa('Attean::Algebra::PredicatePath')) { }
0 0 elsif ($path->isa('Attean::Algebra::AlternativePath')) { }
0 0 elsif ($path->isa('Attean::Algebra::NegatedPropertySet')) { }
739 0 0 unless ($pvars{$v})
772 62 7 if (scalar @triples) { }
786 6 135 if ($b->value =~ /^[.]/u)
799 55 6 if ($distinct)
865 0 144 if $vars{$v}++
871 100 0 unless ($nodes[3])
914 0 263 unless &reftype($lplans) eq "ARRAY"
921 363 945 if ($vars{$v}++)
927 0 366 if ($left) { }
0 366 elsif ($minus) { }
928 0 0 if (scalar @join_vars > 0)
936 311 55 if (scalar @join_vars > 0)
973 0 0 unless $c->expression->is_stable