Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion modules/ROOT/pages/appendix/gql-conformance/index.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
:description: Overview of Cypher's conformance to GQL.
= GQL conformance

*Last updated*: 2 June 2025 +
*Last updated*: 18 June 2025 +
*Neo4j version*: 2025.06

GQL is the new link:https://www.iso.org/home.html[ISO] International Standard query language for graph databases.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -211,10 +211,8 @@ In Cypher, `trim()` removes any whitespace character.
| 21.1
| Names and variables
| xref:syntax/index.adoc[]
| Cypher supports GQL’s lexical elements, with the following caveats:
| Cypher supports GQL’s lexical elements, with the following caveat:

* GQL allows for extended parameter identifiers.
For example: `RETURN $0hello` is allowed in GQL but not Cypher.
* GQL allows identifiers that are not variables to be delimited with both backticks and quotes.
Cypher only allows backticks.
For example: `MATCH (n) RETURN n."a prop"` is allowed in GQL but not Cypher.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ label:removed[]
RETURN 1 as my\u0085identifier
----
a|
The Unicode character \`\u0085` has been removed for unescaped identifiers and is now considered a whitespace character.
The Unicode character `\u0085` has been removed for unescaped identifiers and is now considered a whitespace character.
To continue using it, escape the identifier by adding backticks around it.
This applies to all unescaped identifiers in Cypher, such as label expressions, properties, variable names, or parameters.
In the given example, the quoted identifier would be \`my�identifier`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we fix the failed ? thingy here?

Expand All @@ -72,23 +72,23 @@ label:removed[]
RETURN 1 as my$Identifier
----
a|
The character with the Unicode representation \`\u0024` has been removed for unescaped identifiers. To continue using it, escape the identifier by adding backticks around the identifier.
The character with the Unicode representation `\u0024` has been removed for unescaped identifiers. To continue using it, escape the identifier by adding backticks (++``++) around the identifier.
This applies to all unescaped identifiers in Cypher, such as label expressions, properties, variable names, or parameters. In the given example, the quoted identifier would be \`my$identifier`.

The following Unicode Characters are removed in identifiers:
'\u0000', '\u0001', '\u0002', '\u0003', '\u0004', '\u0005', '\u0006', '\u0007',
'\u0008', '\u000E', '\u000F', '\u0010', '\u0011', '\u0012', '\u0013', '\u0014',
'\u0015', '\u0016', '\u0017', '\u0018', '\u0019', '\u001A', '\u001B', '\u007F',
'\u0080', '\u0081', '\u0082', '\u0083', '\u0084', '\u0086', '\u0087', '\u0088',
'\u0089', '\u008A', '\u008B', '\u008C', '\u008D', '\u008E', '\u008F', '\u0090',
'\u0091', '\u0092', '\u0093', '\u0094', '\u0095', '\u0096', '\u0097', '\u0098',
'\u0099', '\u009A', '\u009B', '\u009C', '\u009D', '\u009E', '\u009F', '\u0024',
'\u00A2', '\u00A3', '\u00A4', '\u00A5', '\u00AD', '\u0600', '\u0601', '\u0602',
'\u0603', '\u0604', '\u0605', '\u061C', '\u06DD', '\u070F', '\u08E2', '\u180E',
'\u200B', '\u200C', '\u200D', '\u200E', '\u200F', '\u202A', '\u202B', '\u202C',
'\u202D', '\u202E', '\u2060', '\u2061', '\u2062', '\u2063', '\u2064', '\u2066',
'\u2067', '\u2068', '\u2069', '\u206A', '\u206B', '\u206C', '\u206D', '\u206E',
'\u206F', '\u2E2F', '\uFEFF', '\uFFF9', '\uFFFA', '\uFFFB'
`\u0000`, `\u0001`, `\u0002`, `\u0003`, `\u0004`, `\u0005`, `\u0006`, `\u0007`,
`\u0008`, `\u000E`, `\u000F`, `\u0010`, `\u0011`, `\u0012`, `\u0013`, `\u0014`,
`\u0015`, `\u0016`, `\u0017`, `\u0018`, `\u0019`, `\u001A`, `\u001B`, `\u007F`,
`\u0080`, `\u0081`, `\u0082`, `\u0083`, `\u0084`, `\u0086`, `\u0087`, `\u0088`,
`\u0089`, `\u008A`, `\u008B`, `\u008C`, `\u008D`, `\u008E`, `\u008F`, `\u0090`,
`\u0091`, `\u0092`, `\u0093`, `\u0094`, `\u0095`, `\u0096`, `\u0097`, `\u0098`,
`\u0099`, `\u009A`, `\u009B`, `\u009C`, `\u009D`, `\u009E`, `\u009F`, `\u0024`,
`\u00A2`, `\u00A3`, `\u00A4`, `\u00A5`, `\u00AD`, `\u0600`, `\u0601`, `\u0602`,
`\u0603`, `\u0604`, `\u0605`, `\u061C`, `\u06DD`, `\u070F`, `\u08E2`, `\u180E`,
`\u200B`, `\u200C`, `\u200D`, `\u200E`, `\u200F`, `\u202A`, `\u202B`, `\u202C`,
`\u202D`, `\u202E`, `\u2060`, `\u2061`, `\u2062`, `\u2063`, `\u2064`, `\u2066`,
`\u2067`, `\u2068`, `\u2069`, `\u206A`, `\u206B`, `\u206C`, `\u206D`, `\u206E`,
`\u206F`, `\u2E2F`, `\uFEFF`, `\uFFF9`, `\uFFFA`, `\uFFFB`

a|
label:functionality[]
Expand Down Expand Up @@ -157,6 +157,22 @@ dbms.upgradeStatus()
a| These procedures have been removed from Cypher 25.
For more information, see the link:{neo4j-docs-base-uri}/operations-manual/current/procedures/[Operations Manual -> Procedures].

a|
label:functionality[]
label:removed[]
[source, cypher, role="noheader"]
----
WITH 1 AS g
RETURN COLLECT {
UNWIND [1,2,3] AS x
WITH * WHERE x < 0
WITH COUNT(*) AS agg
RETURN agg + g
} AS x
----

a| The xref:subqueries/collect.adoc[`COLLECT`], xref:subqueries/count.adoc[`COUNT`], and xref:subqueries/existential.adoc[`EXISTS`] subquery expressions no longer use imported variables as grouping variables in aggregations.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shall we say this is a change in behaviour and what happens?


|===

=== Deprecated in Cypher 25
Expand Down Expand Up @@ -206,6 +222,16 @@ MATCH SHORTEST $param GROUPS (:A)-[:R]->{0,10}(:B)

a| Parameters can now be used in xref:patterns/shortest-paths.adoc[`SHORTEST` and `ANY` path patterns].

a|
label:functionality[]
label:updated[]
[source, cypher, role="noheader"]
----
RETURN $0hello
----

a| Parameters can start with extended identifier characters, in line with the xref:appendix/gql-conformance/index.adoc[GQL] standard.

a|
label:functionality[]
label:updated[]
Expand Down
2 changes: 1 addition & 1 deletion modules/ROOT/pages/syntax/parameters.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Parameters cannot be used for the following constructs, as these form part of th
* Relationship types; `MATCH (n)-[:$param]->(m)` is invalid.
* Node labels; `MATCH (n:$param)` is invalid.

Parameters may consist of letters and numbers, and any combination of these, but cannot start with a number or a currency symbol.
Parameters may consist of any combination of letters and numbers, and can start with any of xref:appendix/gql-conformance/index.adoc[GQL's] extended character identifiers.

Setting parameters when running a query is dependent on the client environment.
For example:
Expand Down