Execution plan operators at a glance

This section contains the exection plan operators at a glance.

This table comprises all the execution plan operators ordered lexicographically.

  • Leaf operators, in most cases, locate the starting nodes and relationships required in order to execute the query.

  • Updating operators are used in queries that update the graph.

  • Eager operators accumulate all their rows before piping them to the next operator.

Name Description Leaf? Updating? Considerations

Reads all nodes from the node store.

Yes

Performs a nested loop. Tests for the absence of a pattern predicate.

Performs a nested loop. Yields rows from both the left-hand and right-hand side operators.

Indicates the variable to be used as an argument to the right-hand side of an Apply operator.

Yes

Used to ensure that no unique constraints are violated.

Reads node or relationship properties and caches them.

Produces a cartesian product of the inputs from the left-hand and right-hand operators.

Creates an index for either nodes or relationships.

Yes

Creates a node key constraint on a set of properties for all nodes having a certain label.

Yes

Creates nodes and relationships.

Yes

Creates an existence constraint on a property for all nodes having a certain label.

Yes

Creates an existence constraint on a property for all relationships of a certain type.

Yes

Creates a unique constraint on a property for all nodes having a certain label.

Yes

Deletes a node or relationship.

Yes

Deletes a node and its relationships.

Yes

Reads one or more relationships by id from the relationship store.

Yes

Drops duplicate rows from the incoming stream of rows.

Eager

Checks if a constraint already exists, if it does then it stops the execution, if not it continues.

Yes

Checks if an index already exists, if it does then it stops the execution, if not it continues.

Yes

Drops an index from a property for all nodes having a certain label.

Yes

Yes

Deprecated

Drops an index using its name.

Yes

Yes

Drops a constraint using its name.

Yes

Yes

Drops a node key constraint from a set of properties for all nodes having a certain label.

Yes

Yes

Deprecated

Drops an existence constraint from a property for all nodes having a certain label.

Yes

Yes

Deprecated

Drops an existence constraint from a property for all relationships of a certain type.

Yes

Yes

Deprecated

Drops a unique constraint from a property for all nodes having a certain label.

Yes

Yes

Deprecated

For isolation purposes, Eager ensures that operations affecting subsequent operations are executed fully for the whole dataset before continuing execution.

Eager

Evaluates a grouping expression.

Eager

Eagerly loads all incoming data and discards it.

Returns a single row with no columns.

Yes

Traverses incoming or outgoing relationships from a given node.

Finds all relationships between two nodes.

Filters each row coming from the child operator, only passing through rows that evaluate the predicates to true.

Performs a nested loop. Yields rows from the left-hand operator and discards rows from the right-hand operator.

Performs a nested loop. Tests for the absence of a pattern predicate in queries containing multiple pattern predicates.

Performs a nested loop. Tests for the presence of a pattern predicate that is combined with other predicates.

Performs a nested loop. Tests for the absence of a pattern predicate that is combined with other predicates.

Performs a nested loop. Tests for the presence of a pattern predicate in queries containing multiple pattern predicates.

Returns the first 'n' rows from the incoming input.

Loads data from a CSV source into the query.

Yes

The Merge operator will either read or create nodes and/or relationships.

Reads one or more nodes by ID from the node store.

Yes

Fetches all nodes with a specific label from the node label index.

Yes

Uses the count store to answer questions about node counts.

Yes

Executes a hash join on node ID.

Eager

Examines all values stored in an index, searching for entries containing a specific string.

Yes

Examines all values stored in an index, searching for entries ending in a specific string.

Yes

Examines all values stored in an index, returning all nodes with a particular label having a specified property.

Yes

Finds nodes using an index seek.

Yes

Finds nodes using an index seek where the value of the property matches the given prefix string.

Yes

Executes a left outer hash join.

Eager

Executes a right outer hash join.

Eager

Finds nodes using an index seek within a unique index.

Yes

Finds nodes using an index seek within a unique index where the value of the property matches the given prefix string.

Yes

Like EagerAggregation but relies on the ordering of incoming rows. Is not eager.

Like Distinct but relies on the ordering of incoming rows.

Yields a single row with all columns set to null if no data is returned by its source.

Traverses relationships from a given node, producing a single row with the relationship and end node set to null if the predicates are not fulfilled.

Traverses all relationships between two nodes, producing a single row with the relationship and end node set to null if no matching relationships are found (the start node will be the node with the smallest degree).

Sorts a row by multiple columns if there is already an ordering.

Returns the first 'n' rows sorted by multiple columns if there is already an ordering.

Calls a procedure.

Prepares the result so that it is consumable by the user.

Projects the start and end node of a relationship.

Evaluates a set of expressions, producing a row with the results thereof.

Yes

Uses the count store to answer questions about relationship counts.

Yes

Deletes labels from a node.

Yes

Performs a nested loop. Executes a pattern expression or pattern comprehension.

Performs a nested loop. Tests for the absence of a pattern predicate if an expression predicate evaluates to false.

Performs a nested loop. Tests for the presence of a pattern predicate if an expression predicate evaluates to false.

Performs a nested loop. Tests for the presence of a pattern predicate.

Sets labels on a node.

Yes

Sets properties from a map on a node.

Yes

Sets a property on a node or relationship.

Yes

Sets properties from a map on a relationship.

Yes

Lists the available constraints.

Yes

Lists the available functions.

Yes

Lists the available indexes.

Yes

Lists the available procedures.

Yes

Skips 'n' rows from the incoming rows.

Sorts rows by a provided key.

Eager

Top

Returns the first 'n' rows sorted by a provided key.

Eager

Solves triangular queries, such as the very common 'find my friend-of-friends that are not already my friend'.

Reads one or more relationships by ID from the relationship store.

Yes

Concatenates the results from the right-hand operator with the results from the left-hand operator.

Returns one row per item in a list.

Executes a hash join on arbitrary values.

Eager

Traverses variable-length relationships from a given node.

Finds all variable-length relationships between two nodes.

Traverses variable-length relationships from a given node and only returns unique end nodes.