---
name: "RDF::Query::Plan"
section: "3pm"
platform: "linux"
package: "librdf-query-perl"
version: "2.919-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/RDF::Query::Plan"
---

# RDF::Query::Plan(3pm)

Executable query plan nodes.

## NAME

RDF::Query::Plan - Executable query plan nodes.

## VERSION

This document describes RDF::Query::Plan version 2.919.

## METHODS

- "new"

  - "execute ( $execution\_context )"

  - "next"

  - "get\_all"

  Returns all remaining rows.

- "close"

  - "state ( \[ $state \] )"

  Returns the current state of the plan (either READY, OPEN, or CLOSED). If `$state` is provided, updates the plan to a new state.

- "logging\_keys"

  - "explain"

  Returns a string serialization of the query plan appropriate for display on the command line.

- "sse"

  - "serialize"

  Return a serialization of the query plan.

- "delegate"

  Returns the delegate object if available.

- "referenced\_variables"

  Returns a list of variable names that are referenced by this plan.

- "as\_iterator ( $context )"

  Returns an RDF::Trine::Iterator object for the current (already executed) plan.

- "is\_update"

  Returns true if the plan represents an update operation.

- "label ( $label =\> $value )"

  Sets the named `$label` to `$value` for this plan object. If no `$value` is given, returns the current label value, or undef if none exists.

- "graph\_labels"

  - "generate\_plans ( $algebra, $execution\_context, %args )"

  Returns a list of equivalent query plan objects for the given algebra object.

- "plan\_node\_name"

  Returns the string name of this plan node, suitable for use in serialization.

- "plan\_prototype"

  Returns a list of scalar identifiers for the type of the content (children) nodes of this plan node. These identifiers are recognized:

  ```
   * 'A' - An RDF::Query::Algebra object
   * 'b' - A boolean integer value (0 or 1)
   * 'E' - An expression (either an RDF::Query::Expression object or an RDF node)
   * 'i' - An integer
   * 'J' - A valid Project node (an RDF::Query::Expression object or an Variable node)
   * 'N' - An RDF node
   * 'P' - A RDF::Query::Plan object
   * 'q' - A RDF::Query object
   * 'Q' - An RDF::Trine::Statement::Quad object
   * 's' - A string
   * 'T' - An RDF::Trine::Statement object
   * 'u' - A valid URI string
   * 'V' - A variable binding set (an object of type RDF::Query::VariableBindings)
   * 'w' - A bareword string
   * 'W' - An RDF node or wildcard ('*')
   * '*X' - A list of X nodes (where X is another identifier scalar)
   * '\X' - An array reference of X nodes (where X is another identifier scalar)
  ```

- "plan\_node\_data"

  Returns the data for this plan node that corresponds to the values described by the signature returned by `"plan_prototype"`.

- "subplans\_of\_type ( $type \[, $block\] )"

  Returns a list of Plan objects matching `$type` (tested with `"isa"`). If `$block` is given, then matching stops descending a subtree if the current node is of type `$block`, continuing matching on other subtrees. This list includes the current plan object if it matches `$type`, and is generated in infix order.

## AUTHOR

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