| 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 |