Skip to content

Conversation

@hvub
Copy link
Contributor

@hvub hvub commented Feb 10, 2025

Removes the paragraph about the update boundary property of WITH.

mnd999 and others added 30 commits October 15, 2024 08:54
…#1047)

Replace with new option `existingDataSeedServer`

Documenting neo-technology/neo4j#27123

---------

Co-authored-by: Jens Pryce-Åklundh <[email protected]>
One unicode was turned into whitespace, the others were just removed as
valid in non-delimited identifiers

---------

Co-authored-by: Jens Pryce-Åklundh <[email protected]>
…b.schema.relTypeProperties() (neo4j#1062)

The column propertyTypes is a LIST<STRING>, currently it outputs runtime
types, but in Cypher25 it outputs Cypher Types.

---------

Co-authored-by: Jens Pryce-Åklundh <[email protected]>
Various queries in the Cypher Quick Reference are formatted differently.
I wasn't sure which way is preferable, so i did not change anything, but
it's something to keep in mind during a review

---------

Co-authored-by: Jens Pryce-Åklundh <[email protected]>
Co-authored-by: Hannes Sandberg <[email protected]>
Co-authored-by: Lasse Heemann <[email protected]>
* Update createStatement for key constraints
* Add optional keyword `PROPERTY` for `SHOW [NODE | REL[ATIONSHIP]]
[PROPERTY] UNIQUE[NESS] CONSTRAINTS` filtering
* Update return type and default values for some columns for `SHOW
TRANSACTIONS`

---------

Co-authored-by: Jens Pryce-Åklundh <[email protected]>
JPryce-Aklundh and others added 28 commits December 19, 2024 10:05
…j#1151)

The examples in Patterns / Syntax and semantics / shortestPaths /
Examples mix legacy shortest path and QPPs, which is disallowed. This PR
changes them to variable-length relationships.

It also improves the header "Restricted to variable length". QPPs are
disallowed but also variable length. What they are not are
variable-length relationships.
…th() functions (neo4j#1146)

Document that the shortestPath() and allShortestPath() functions can
only have a lower bound of 0 or 1 for its variable length pattern.

This is not allowed:
` MATCH p=shortestPath((a:A)-[:R*2..]->(b:B)) RETURN 1`

A lower bound can be specified using a filter, but might lead to
executing a possibly very slow fallback plan.
` MATCH p=shortestPath((a:A)-[:R*]->(b:B)) WHERE length(p)>2 RETURN 1`

The possibly very slow fallback plan is this part:
```
| | +Top                   |  3 | anon_1 ASC LIMIT 1                                    |              1 | In Pipeline 6       |
| | |                      +----+-------------------------------------------------------+----------------+---------------------+
| | +Projection            |  4 | length(p) AS anon_1                                   |              1 |                     |
| | |                      +----+-------------------------------------------------------+----------------+                     |
| | +Filter                |  5 | length(p) > $autoint_0                                |              1 |                     |
| | |                      +----+-------------------------------------------------------+----------------+                     |
| | +Projection            |  6 | (a)-[anon_0*]->(b) AS p                               |              4 |                     |
| | |                      +----+-------------------------------------------------------+----------------+                     |
| | +VarLengthExpand(Into) |  7 | (a)-[anon_0:R*]->(b)                                  |              4 |                     |
| | |                      +----+-------------------------------------------------------+----------------+                     |
| | +Argument              |  8 | a, b                                                  |            100 | Fused in Pipeline 5 |
| |                        +----+-------------------------------------------------------+----------------+---------------------+

```

Within this query plan:
```
+--------------------------+----+-------------------------------------------------------+----------------+---------------------+
| Operator                 | Id | Details                                               | Estimated Rows | Pipeline            |
+--------------------------+----+-------------------------------------------------------+----------------+---------------------+
| +ProduceResults          |  0 | `1`                                                   |             30 |                     |
| |                        +----+-------------------------------------------------------+----------------+                     |
| +Projection              |  1 | $autoint_1 AS `1`                                     |             30 |                     |
| |                        +----+-------------------------------------------------------+----------------+                     |
| +AntiConditionalApply    |  2 |                                                       |             30 | Fused in Pipeline 7 |
| |\                       +----+-------------------------------------------------------+----------------+---------------------+
| | +Top                   |  3 | anon_1 ASC LIMIT 1                                    |              1 | In Pipeline 6       |
| | |                      +----+-------------------------------------------------------+----------------+---------------------+
| | +Projection            |  4 | length(p) AS anon_1                                   |              1 |                     |
| | |                      +----+-------------------------------------------------------+----------------+                     |
| | +Filter                |  5 | length(p) > $autoint_0                                |              1 |                     |
| | |                      +----+-------------------------------------------------------+----------------+                     |
| | +Projection            |  6 | (a)-[anon_0*]->(b) AS p                               |              4 |                     |
| | |                      +----+-------------------------------------------------------+----------------+                     |
| | +VarLengthExpand(Into) |  7 | (a)-[anon_0:R*]->(b)                                  |              4 |                     |
| | |                      +----+-------------------------------------------------------+----------------+                     |
| | +Argument              |  8 | a, b                                                  |            100 | Fused in Pipeline 5 |
| |                        +----+-------------------------------------------------------+----------------+---------------------+
| +Apply                   |  9 |                                                       |            100 |                     |
| |\                       +----+-------------------------------------------------------+----------------+---------------------+
| | +Optional              | 10 | a, b                                                  |            100 | In Pipeline 4       |
| | |                      +----+-------------------------------------------------------+----------------+---------------------+
| | +ShortestPath          | 11 | p = (a)-[anon_0:R*]->(b) WHERE length(p) > $autoint_0 |             30 |                     |
| | |                      +----+-------------------------------------------------------+----------------+                     |
| | +Argument              | 12 | a, b                                                  |            100 | Fused in Pipeline 3 |
| |                        +----+-------------------------------------------------------+----------------+---------------------+
| +CartesianProduct        | 13 |                                                       |            100 | In Pipeline 2       |
| |\                       +----+-------------------------------------------------------+----------------+---------------------+
| | +NodeByLabelScan       | 14 | b:B                                                   |             10 | In Pipeline 1       |
| |                        +----+-------------------------------------------------------+----------------+---------------------+
| +NodeByLabelScan         | 15 | a:A                                                   |             10 | In Pipeline 0       |
+--------------------------+----+-------------------------------------------------------+----------------+---------------------+
```

Better is to use the keyword-based SHORTEST.
`MATCH p = SHORTEST 1 (a:A)-[:R]->{2,}(b:B) RETURN 1`

---------

Co-authored-by: Jens Pryce-Åklundh <[email protected]>
With the release of Cypher 25, the `page-version` attribute in Cypher
and server doc sets will differ. It will be replaced with `current`.
Docs update regarding neo-technology/neo4j#28493
(plus a little clarification w.r.t. variable scope in subqueries).

---------

Co-authored-by: Richard Sill <[email protected]>
Co-authored-by: Jens Pryce-Åklundh <[email protected]>
* adds section about graph references to expressions
* attempt to split behavior of use clauses in the docs depending on
which database you're connected to

---------

Co-authored-by: Jens Pryce-Åklundh <[email protected]>
Reverts changes made here:
neo4j#1166 due to a rolback in
product
@hvub hvub closed this Feb 10, 2025
JPryce-Aklundh added a commit that referenced this pull request Feb 19, 2025
Removes the paragraph about the update boundary property of `WITH`.

---------

Co-authored-by: Jens Pryce-Åklundh <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.