Skip to content

Commit

Permalink
Cherry Pick PRs 831 & 851 (#854)
Browse files Browse the repository at this point in the history
Co-authored-by: Pontus Melke <[email protected]>
  • Loading branch information
JPryce-Aklundh and pontusmelke authored Jan 22, 2024
1 parent 481d206 commit 7e83d9a
Show file tree
Hide file tree
Showing 2 changed files with 534 additions and 87 deletions.
97 changes: 73 additions & 24 deletions modules/ROOT/pages/planning-and-tuning/operators/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ This table comprises all the execution plan operators ordered lexicographically.

* _Eager_ operators xref::planning-and-tuning/execution-plans.adoc#lazy-eager-evaluation[accumulate all their rows] before piping them to the next operator.

[cols="35a,35a,6,10,14", options="header"]
[cols="35a,35a,8,12,18", options="header"]
|===
| Name | Description | Leaf? | Updating? | Considerations

Expand Down Expand Up @@ -49,7 +49,14 @@ Tests for the absence of a pattern predicate.
|

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-argument[Argument]
| Indicates the variable to be used as an argument to the right-hand side of an `Apply` operator.
| Indicates the variable to be used as an argument to the right-hand side of an xref:planning-and-tuning/operators/operators-detail.adoc#query-plan-apply[`Apply`] operator.
| label:yes[]
|
|

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-argument-tracker[ArgumentTracker]
| Used to ensure row-by-row semantics.
Restricts the xref:planning-and-tuning/runtimes/index.adoc[Cypher runtime] to not batch operations in larger chunks.
| label:yes[]
|
|
Expand All @@ -64,7 +71,7 @@ Tests for the absence of a pattern predicate.
| Ensures that no relationship property uniqueness constraints are violated.
|
|
|
| label:new[Introduced in 5.8]

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-asserting-multi-node-index-seek[AssertingMultiNodeIndexSeek]
| Used to ensure that no property uniqueness constraints are violated.
Expand Down Expand Up @@ -120,8 +127,14 @@ Tests for the absence of a pattern predicate.
|
|

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-directed-relationship-by-element-id-seek[DirectedRelationshipByElementIdSeek]
| Reads one or more relationships by element id (specified via the function xref::functions/scalar.adoc#functions-elementid[elementId()]) from the relationship store and produces the relationship as well as the source and target node of the relationship.
| label:yes[]
|
|

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-directed-relationship-by-id-seek[DirectedRelationshipByIdSeek]
| Reads one or more relationships by id from the relationship store.
| Reads one or more relationships by id (specified via the function xref::functions/scalar.adoc#functions-id[Id()]) from the relationship store, and produces the relationship as well as the source and target node of the relationship.
| label:yes[]
|
|
Expand Down Expand Up @@ -224,7 +237,7 @@ Tests for the absence of a pattern predicate.

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-exhaustive-limit[ExhaustiveLimit]
a|
The `ExhaustiveLimit` operator is similar to the `Limit` operator, but always exhausts the input.
The `ExhaustiveLimit` operator is similar to the xref:planning-and-tuning/operators/operators-detail.adoc#query-plan-limit[`Limit`]operator, but always exhausts the input.
Used when combining `LIMIT` and updates.
|
|
Expand Down Expand Up @@ -260,7 +273,7 @@ Yields rows from the left-hand operator and discards rows from the right-hand op
| Fetches all nodes that have all of the provided labels from the node label index.
| label:yes[]
|
|
| label:new[Introduced in 5.5]

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-let-anti-semi-apply[LetAntiSemiApply]
a|
Expand Down Expand Up @@ -307,7 +320,7 @@ Tests for the presence of a pattern predicate in queries containing multiple pat
|

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-locking-merge[LockingMerge]
| Similar to the `Merge` operator but will lock the start and end node when creating a relationship if necessary.
| Similar to the xref:planning-and-tuning/operators/operators-detail.adoc#query-plan-merge[`Merge`] operator but will lock the start and end node when creating a relationship if necessary.
|
|
|
Expand All @@ -324,14 +337,14 @@ Tests for the presence of a pattern predicate in queries containing multiple pat
|
|

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-node-by-elementid-seek[NodeByElementIdSeek]
| Reads one or more nodes by ID from the node store, specified via the function xref::functions/scalar.adoc#functions-elementid[elementId()].
| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-node-by-element-id-seek[NodeByElementIdSeek]
| Reads one or more nodes by id from the node store, specified via the function xref::functions/scalar.adoc#functions-elementid[elementId()].
| label:yes[]
|
|
| label:new[Introduced in 5.3]

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-node-by-id-seek[NodeByIdSeek]
| Reads one or more nodes by ID from the node store, specified via the function xref::functions/scalar.adoc#functions-id[id()].
| Reads one or more nodes by id from the node store, specified via the function xref::functions/scalar.adoc#functions-id[id()].
| label:yes[]
|
|
Expand Down Expand Up @@ -408,6 +421,13 @@ Tests for the presence of a pattern predicate in queries containing multiple pat
|
|

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-nullify-metadata[NullifyMetadata]
| responsible for cleaning up the state produced by xref:planning-and-tuning/operators/operators-detail.adoc#query-plan-repeat[`Repeat(Trail)`].
It is only planned directly after `Repeat(Trail)`.
|
|
| label:new[Introduced in 5.9]

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-optional[Optional]
| Yields a single row with all columns set to `null` if no data is returned by its source.
|
Expand All @@ -427,15 +447,14 @@ Tests for the presence of a pattern predicate in queries containing multiple pat
|

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-ordered-aggregation[OrderedAggregation]
a|
Like `EagerAggregation` but relies on the ordering of incoming rows.
Is not eager.
| Similar to the xref:planning-and-tuning/operators/operators-detail.adoc#query-plan-eager-aggregation[`EagerAggregation`] operator but relies on the ordering of incoming rows.
It is not eager.
|
|
|

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-ordered-distinct[OrderedDistinct]
| Like `Distinct` but relies on the ordering of incoming rows.
| Similar to the xref:planning-and-tuning/operators/operators-detail.adoc#query-plan-distinct[`DISTINCT`] operator but relies on the ordering of incoming rows.
|
|
|
Expand Down Expand Up @@ -486,7 +505,7 @@ Is not eager.
| Solves quantified path patterns.
|
|
|
| label:new[Introduced in 5.9]

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-remove-labels[RemoveLabels]
| Deletes labels from a node.
Expand All @@ -495,16 +514,14 @@ Is not eager.
|

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-roll-up-apply[RollUpApply]
a|
Performs a nested loop.
| Performs a nested loop.
Executes a pattern expression or pattern comprehension.
|
|
|

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-select-or-anti-semi-apply[SelectOrAntiSemiApply]
a|
Performs a nested loop.
| Performs a nested loop.
Tests for the absence of a pattern predicate if an expression predicate evaluates to `false`.
|
|
Expand Down Expand Up @@ -540,6 +557,12 @@ Tests for the absence of a pattern predicate if an expression predicate evaluate
| label:yes[]
|

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-set-properties[SetProperties]
| Used when setting multiple properties on a node or relationship.
|
| label:yes[]
|

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-set-relationship-properties-from-map[SetRelationshipPropertiesFromMap]
| Sets properties from a map on a relationship.
|
Expand Down Expand Up @@ -600,6 +623,12 @@ Tests for the absence of a pattern predicate if an expression predicate evaluate
|
| label:eager[]

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-subquery-foreach[SubqueryForeach]
| Works like the xref:planning-and-tuning/operators/operators-detail.adoc#query-plan-foreach[`Foreach`]operator but it is only used for executing subqueries.
|
|
|

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-terminate-transactions[TerminateTransactions]
| Terminate transactions with the given IDs.
| label:yes[]
Expand All @@ -612,20 +641,32 @@ Tests for the absence of a pattern predicate if an expression predicate evaluate
|
| label:eager[]

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-transaction-apply[TransactionApply]
| Works like the xref:planning-and-tuning/operators/operators-detail#query-plan-apply[`Apply`] operator but will commit the current transaction after a specified number of rows.
|
|
|

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-transaction-foreach[TransactionForeach]
| Works like the xref:planning-and-tuning/operators/operators-detail.adoc#query-plan-foreach[`Foreach`] operator but will commit the current transaction after a specified number of rows.
|
|
|

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-triadic-build[TriadicBuild]
| The `TriadicBuild` operator is used in conjunction with `TriadicFilter` to solve triangular queries.
| Used in conjunction with xref:planning-and-tuning/operators/operators-detail.adoc#query-plan-triadic-filter[`TriadicFilter`] to solve triangular queries.
|
|
|

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-triadic-filter[TriadicFilter]
| The `TriadicFilter` operator is used in conjunction with `TriadicBuild` to solve triangular queries.
| Used in conjunction with xref:planning-and-tuning/operators/operators-detail.adoc#query-plan-triadic-build[`TriadicBuild`] to solve triangular queries.
|
|
|

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-triadic-selection[TriadicSelection]
| Solves triangular queries, such as the very common 'find my friend-of-friends that are not already my friend'.
| Solves triangular queries, such as the very common 'find my friends-of-friends that are not already my friends'.
|
|
|
Expand All @@ -636,8 +677,16 @@ Tests for the absence of a pattern predicate if an expression predicate evaluate
|
|

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-undirected-relationship-by-element-id-seek[UndirectedRelationshipByElementIdSeek]
| Reads one or more relationships by element id (specified via the function xref::functions/scalar.adoc#functions-elementid[ElementId()]) from the relationship store.
As the direction is unspecified, two rows are produced for each relationship as a result of alternating the combination of the start and end node.
| label:yes[]
|
|

| xref::planning-and-tuning/operators/operators-detail.adoc#query-plan-undirected-relationship-by-id-seek[UndirectedRelationshipByIdSeek]
| Reads one or more relationships by ID from the relationship store.
| Reads one or more relationships by id (specified via the function xref::functions/scalar.adoc#functions-id[Id()]) from the relationship store.
As the direction is unspecified, two rows are produced for each relationship as a result of alternating the combination of the start and end node.
| label:yes[]
|
|
Expand Down
Loading

0 comments on commit 7e83d9a

Please sign in to comment.