Branch Coverage

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


line true false branch
112 134 0 if ($model->does("Attean::API::CostPlanner"))
114 2 132 if (@plans) { }
121 0 132 unless $algebra
128 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')) { }
139 6 294 if ($_->does("Attean::API::Blank"))
142 6 0 unless (exists $blanks{$id})
149 6 94 if ($changed)
167 12 26 if ($p->distinct) { }
172 0 26 if ($self->_comparators_are_stable_and_cover_vars($cmps, @vars)) { }
188 0 12 if ($t->isa("Attean::ExistsExpression"))
191 0 0 unless ($plan->does("Attean::API::BindingSubstitutionPlan"))
202 0 6 if ($changed)
213 3 3 if ($expr->isa('Attean::ValueExpression') and $expr->value->does('Attean::API::Variable')) { }
235 3 0 if (scalar @cmps == 1 and $cmps[0]->expression->isa('Attean::ValueExpression') and $cmps[0]->expression->value->does('Attean::API::Variable')) { }
269 7 7 $vars_key eq join(' ', sort(@{$_->in_scope_variables;})) ? :
276 5 5 if ($graph->does('Attean::API::Term')) { }
277 2 3 if (my $available = $args{'available_graphs'})
280 1 1 unless (&any(sub {
295 2 3 if (my $available = $args{'available_graphs'})
305 0 3 if $ignore{$graph->value}
314 1 4 if (scalar @branches == 1) { }
326 0 0 if (scalar @$rows < $self->table_threshold) { }
410 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')) { }
413 0 0 if ($pa->isa('Attean::TriplePattern')) { }
416 0 0 if (scalar @triples)
423 0 0 if (scalar @triples)
440 0 0 $path->isa('Attean::Algebra::OneOrMorePath') ? :
448 0 0 if ($s_var and not $o_var) { }
504 0 0 $algebra->drop ? :
506 0 0 if ($target eq 'GRAPH') { }
513 0 0 if ($target eq 'ALL') { }
516 0 0 if ($target eq 'DEFAULT' and $default{$graph->value}) { }
0 0 elsif ($target eq 'NAMED' and not $default{$graph->value}) { }
529 0 0 if (my $from = $algebra->source) { }
539 0 0 if (my $g = $algebra->destination) { }
549 0 0 if ($default_dest and $default_source) { }
0 0 elsif ($default_dest or $default_source) { }
0 0 elsif ($algebra->source->equals($algebra->destination)) { }
557 0 0 if ($run_update)
558 0 0 if ($algebra->drop_destination)
559 0 0 $algebra->has_destination ? :
570 0 0 if ($algebra->drop_source)
571 0 0 $algebra->has_source ? :
575 0 0 scalar @plans == 1 ? :
578 0 0 unless ($child)
584 0 0 unless $dataset->{'default'}
585 0 0 unless $dataset->{'named'}
590 0 0 if (scalar @default or scalar @named) { }
605 0 0 if (scalar @$d)
609 0 0 if (scalar @$i)
624 0 0 $algebra->has_graph ? :
667 0 0 if (scalar @rest == 0) { }
690 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')) { }
746 0 0 unless ($pvars{$v})
779 62 7 if (scalar @triples) { }
793 6 135 if ($b->value =~ /^[.]/u)
806 55 6 if ($distinct)
872 0 144 if $vars{$v}++
878 100 0 unless ($nodes[3])
921 0 263 unless &reftype($lplans) eq "ARRAY"
928 363 945 if ($vars{$v}++)
934 0 366 if ($left) { }
0 366 elsif ($minus) { }
935 0 0 if (scalar @join_vars > 0)
943 311 55 if (scalar @join_vars > 0)
980 0 0 unless $c->expression->is_stable