Enum rincon_client::aql::types::ExecutionNode [] [src]

pub enum ExecutionNode {
    Singleton(SingletonNode),
    EnumerateCollection(EnumerateCollectionNode),
    Index(IndexNode),
    EnumerateList(EnumerateListNode),
    Filter(FilterNode),
    Limit(LimitNode),
    Calculation(CalculationNode),
    SubQuery(SubQueryNode),
    Sort(SortNode),
    Aggregate(AggregateNode),
    Return(ReturnNode),
    Insert(InsertNode),
    Remove(RemoveNode),
    Replace(ReplaceNode),
    Update(UpdateNode),
    Upsert(UpsertNode),
    NoResults(NoResultsNode),
    Scatter(ScatterNode),
    Gather(GatherNode),
    Distribute(DistributeNode),
    Remote(RemoteNode),
    Unlisted(Box<GenericExecutionNode>),
}

The execution node types will appear in the execution plan as output of the explain method.

This enum defines all possible execution nodes as listed in the official documentation of ArangoDB.

Source: https://docs.arangodb.com/devel/AQL/ExecutionAndPerformance/Optimizer.html#list-of-execution-nodes

Last update: 10/08/2017

Variants

The purpose of a SingletonNode is to produce an empty document that is used as input for other processing steps. Each execution plan will contain exactly one SingletonNode as its top node.

Enumeration over documents of a collection (given in its collection attribute) without using an index.

Enumeration over one or many indexes (given in its indexes attribute) of a collection. The index ranges are specified in the condition attribute of the node.

Enumeration over a list of (non-collection) values.

Only lets values pass that satisfy a filter condition. Will appear once per FILTER statement.

Limits the number of results passed to other processing steps. Will appear once per LIMIT statement.

Evaluates an expression. The expression result may be used by other nodes, e.g. FilterNode, EnumerateListNode, SortNode etc.

Executes a sub-query.

Performs a sort of its input values.

Aggregates its input and produces new output variables. This will appear once per COLLECT statement.

Returns data to the caller. Will appear in each read-only query at least once. Sub-queries will also contain ReturnNodes.

Inserts documents into a collection (given in its collection attribute). Will appear exactly once in a query that contains an INSERT statement.

Removes documents from a collection (given in its collection attribute). Will appear exactly once in a query that contains a REMOVE statement.

Replaces documents in a collection (given in its collection attribute). Will appear exactly once in a query that contains a REPLACE statement.

Updates documents in a collection (given in its collection attribute). Will appear exactly once in a query that contains an UPDATE statement.

Upserts documents in a collection (given in its collection attribute). Will appear exactly once in a query that contains an UPSERT statement.

Will be inserted if FILTER statements turn out to be never satisfiable. The NoResultsNode will pass an empty result set into the processing pipeline.

Used on a coordinator to fan-out data to one or multiple shards.

Used on a coordinator to aggregate results from one or many shards into a combined stream of results.

Used on a coordinator to fan-out data to one or multiple shards, taking into account a collection's shard key.

A RemoteNode will perform communication with another ArangoDB instances in the cluster. For example, the cluster coordinator will need to communicate with other servers to fetch the actual data from the shards. It will do so via RemoteNodes. The data servers themselves might again pull further data from the coordinator, and thus might also employ RemoteNodes. So, all of the above cluster relevant nodes will be accompanied by a RemoteNode.

A generic node that is used for node types that have not been added to this enum yet. This should not happen until a new node type is added to a newer version of ArangoDB.

If your application get this node type returned please file an issue for this crate. Add the query and if possible the debug output of this ExecutionNode to that issue.

Trait Implementations

impl Debug for ExecutionNode
[src]

[src]

Formats the value using the given formatter. Read more

impl Clone for ExecutionNode
[src]

[src]

Returns a copy of the value. Read more

1.0.0
[src]

Performs copy-assignment from source. Read more

impl PartialEq for ExecutionNode
[src]

[src]

This method tests for self and other values to be equal, and is used by ==. Read more

[src]

This method tests for !=.

impl<'de> Deserialize<'de> for ExecutionNode
[src]

[src]

Deserialize this value from the given Serde deserializer. Read more

Auto Trait Implementations

impl Send for ExecutionNode

impl Sync for ExecutionNode