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

Y

Performs a nested loop. If a variable is null, the right-hand side will be executed.

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.

Y

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.

Performs a nested loop. If a variable is not null, the right-hand side will be executed.

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

Y

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

Y

Creates nodes and relationships.

Y

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

Y

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

Y

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

Y

Deletes a node or relationship.

Y

Deletes a node and its relationships.

Y

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

Y

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

Y

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

Y

DropIndex (deprecated syntax)

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

Y

Y

Deprecated

DropIndex (new syntax)

Drops an index using its name.

Y

Y

Drops a constraint using its name.

Y

Y

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

Y

Y

Deprecated

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

Y

Y

Deprecated

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

Y

Y

Deprecated

Produces zero rows when an expression is guaranteed to produce an empty result.

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

Y

Y

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.

Y

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.

Y

Locks the start and end node when creating a relationship.

Creates the node when failing to find the node.

Y

Y

Creates the relationship when failing to find the relationship.

Y

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

Y

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

Y

Uses the count store to answer questions about node counts.

Y

Executes a hash join on node ids.

Eager

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

Y

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

Y

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

Y

Finds nodes using an index seek.

Y

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

Y

Executes a left outer hash join.

Eager

Executes a right outer hash join.

Eager

Finds nodes using an index seek within a unique index.

Y

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

Y

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.

Y

Uses the count store to answer questions about relationship counts.

Y

Deletes labels from a node.

Y

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.

Y

Sets properties from a map on a node.

Y

Sets a property on a node or relationship.

Y

Sets properties from a map on a relationship.

Y

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.

Y

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.