7.2. Execution plan operators at a glance

This table comprises all the execution plan operators ordered lexicographically.

Name Description Leaf? Updating? Considerations

AllNodesScan

Reads all nodes from the node store.

Y

   

AntiConditionalApply

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

     

AntiSemiApply

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

     

Apply

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

     

Argument

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

Y

   

AssertSameNode

Used to ensure that no unique constraints are violated.

     

CacheProperties

Reads node or relationship properties and caches them.

     

CartesianProduct

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

     

ConditionalApply

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

     

CreateIndex

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

Y

Y

 

CreateNodeKeyConstraint

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

Y

Y

 

Create

Creates nodes and relationships.

 

Y

 

CreateNodePropertyExistenceConstraint

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

Y

Y

 

CreateRelationshipPropertyExistenceConstraint

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

Y

Y

 

CreateUniqueConstraint

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

Y

Y

 

Delete

Deletes a node or relationship.

 

Y

 

DetachDelete

Deletes a node and its relationships.

 

Y

 

DirectedRelationshipByIdSeek

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

Y

   

Distinct

Drops duplicate rows from the incoming stream of rows.

   

Eager

DropIndex (deprecated syntax)

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

Y

Y

 

DropIndex (new syntax)

Drops an index using its name.

Y

Y

 

DropConstraint

Drops a constraint using its name.

Y

Y

 

DropNodeKeyConstraint

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

Y

Y

 

DropNodePropertyExistenceConstraint

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

Y

Y

 

DropRelationshipPropertyExistenceConstraint

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

Y

Y

 

DropResult

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

     

DropUniqueConstraint

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

Y

Y

 

Eager

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

   

Eager

EagerAggregation

Evaluates a grouping expression.

   

Eager

EmptyResult

Eagerly loads all incoming data and discards it.

     

EmptyRow

Returns a single row with no columns.

Y

   

Expand(All)

Traverses incoming or outgoing relationships from a given node.

     

Expand(Into)

Finds all relationships between two nodes.

     

Filter

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

     

Foreach

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

     

LetAntiSemiApply

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

     

LetSelectOrSemiApply

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

     

LetSelectOrAntiSemiApply

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

     

LetSemiApply

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

     

Limit

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

     

LoadCSV

Loads data from a CSV source into the query.

Y

   

LockNodes

Locks the start and end node when creating a relationship.

     

MergeCreateNode

Creates the node when failing to find the node.

Y

Y

 

MergeCreateRelationship

Creates the relationship when failing to find the relationship.

 

Y

 

NodeByIdSeek

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

Y

   

NodeByLabelScan

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

Y

   

NodeCountFromCountStore

Uses the count store to answer questions about node counts.

Y

   

NodeHashJoin

Executes a hash join on node ids.

   

Eager

NodeIndexContainsScan

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

Y

   

NodeIndexEndsWithScan

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

Y

   

NodeIndexScan

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

Y

   

NodeIndexSeek

Finds nodes using an index seek.

Y

   

NodeIndexSeekByRange

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

Y

   

NodeLeftOuterHashJoin

Executes a left outer hash join.

   

Eager

NodeRightOuterHashJoin

Executes a right outer hash join.

   

Eager

NodeUniqueIndexSeek

Finds nodes using an index seek within a unique index.

Y

   

NodeUniqueIndexSeekByRange

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

Y

   

OrderedAggregation

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

     

OrderedDistinct

Like Distinct but relies on the ordering of incoming rows.

     

Optional

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

     

OptionalExpand(All)

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.

     

OptionalExpand(Into)

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

     

PartialSort

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

     

PartialTop

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

     

ProcedureCall

Calls a procedure.

     

ProduceResults

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

     

ProjectEndpoints

Projects the start and end node of a relationship.

     

Projection

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

Y

   

RelationshipCountFromCountStore

Uses the count store to answer questions about relationship counts.

Y

   

RemoveLabels

Deletes labels from a node.

 

Y

 

RollUpApply

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

     

SelectOrAntiSemiApply

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

     

SelectOrSemiApply

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

     

SemiApply

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

     

SetLabels

Sets labels on a node.

 

Y

 

SetNodePropertiesFromMap

Sets properties from a map on a node.

 

Y

 

SetProperty

Sets a property on a node or relationship.

 

Y

 

SetRelationshipPropertiesFromMap

Sets properties from a map on a relationship.

 

Y

 

Skip

Skips 'n' rows from the incoming rows.

     

Sort

Sorts rows by a provided key.

   

Eager

Top

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

   

Eager

TriadicSelection

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

     

UndirectedRelationshipByIdSeek

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

Y

   

Union

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

     

Unwind

Returns one row per item in a list.

     

ValueHashJoin

Executes a hash join on arbitrary values.

   

Eager

VarLengthExpand(All)

Traverses variable-length relationships from a given node.

     

VarLengthExpand(Into)

Finds all variable-length relationships between two nodes.

     

VarLengthExpand(Pruning)

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