---
name: "Attean::Plan"
section: "3pm"
platform: "linux"
package: "libattean-perl"
version: "0.035-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Attean::Plan"
---

# Attean::Plan(3pm)

Representation of SPARQL query plan operators

## NAME

Attean::Plan - Representation of SPARQL query plan operators

## VERSION

This document describes Attean::Plan version 0.035

## SYNOPSIS

```
  use v5.14;
  use Attean;
```

## DESCRIPTION

This is a utility package that defines all the Attean query plan classes in the Attean::Plan namespace:

- •

  Attean::Plan::Quad

  Evaluates a quad pattern against the model.

- •

  Attean::Plan::NestedLoopJoin

  Evaluates a join (natural-, anti-, or left-) using a nested loop.

- •

  Attean::Plan::HashJoin

  Evaluates a join (natural-, anti-, or left-) using a hash join.

- •

  Attean::Plan::Construct

- •

  Attean::Plan::Describe

- •

  Attean::Plan::EBVFilter

  Filters results from a sub-plan based on the effective boolean value of a named variable binding.

- •

  Attean::Plan::Merge

  Evaluates a set of sub-plans, returning the merged union of results, preserving ordering.

- •

  Attean::Plan::Union

  Evaluates a set of sub-plans, returning the union of results.

- •

  Attean::Plan::Extend

  Evaluates a sub-plan, and extends each result by evaluating a set of expressions, binding the produced values to new variables.

- •

  Attean::Plan::HashDistinct

  Evaluates a sub-plan, and returns distinct results by checking a persistent hash of already-seen results.

- •

  Attean::Plan::Unique

  Evaluates an already-ordered sub-plan, and returns distinct results by filtering out sequential duplicates.

- •

  Attean::Plan::Slice

  Evaluates a sub-plan, and returns the results after optionally skipping some number of results ("offset") and limiting the total number of returned results ("limit").

- •

  Attean::Plan::Project

  Evaluates a sub-plan and returns projected results by only keeping a fixed-set of variable bindings in each result.

- •

  Attean::Plan::OrderBy

  Evaluates a sub-plan and returns the results after fully materializing and sorting is applied.

- •

  Attean::Plan::Service

  Evaluates a SPARQL query against a remote endpoint.

- •

  Attean::Plan::Table

  Returns a constant set of results.

- •

  Attean::Plan::Iterator

  Returns a constant set of results.

  Be aware that if the iterator being wrapped is not repeatable (consuming the Attean::API::RepeatableIterator role), then this plan may only be evaluated once.

  A size estimate may be given if it is available. If the iterator is an Attean::ListIterator, the size of that iterator will be used.

- •

  Attean::Plan::ALPPath

- •

  Attean::Plan::Exists

  Returns an iterator containing a single boolean term indicating whether any results were produced by evaluating the sub-plan.

- •

  Attean::Plan::Aggregate

- •

  Attean::Plan::Unfold

## BUGS

Please report any bugs or feature requests to through the GitHub web interface at \<https://github.com/kasei/attean/issues\>.

## SEE ALSO

## AUTHOR

Gregory Todd Williams  `"<gwilliams@cpan.org>"`

## COPYRIGHT

Copyright (c) 2014--2022 Gregory Todd Williams. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
