Skip to content

Commit c1774e0

Browse files
Document unicode changes for Cypher 25 (#1059)
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]>
1 parent 94c5647 commit c1774e0

File tree

2 files changed

+53
-1
lines changed

2 files changed

+53
-1
lines changed

modules/ROOT/pages/deprecations-additions-removals-compatibility.adoc

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,57 @@ New features are added to the language continuously, and occasionally, some feat
1616
This section lists all of the features that have been removed, deprecated, added, or extended in different Cypher versions.
1717
Replacement syntax for deprecated and removed features are also indicated.
1818

19+
[[cypher-deprecations-additions-removals-2025.01]]
20+
== Neo4j 2025.01
21+
22+
=== Removed features
23+
24+
[cols="2", options="header"]
25+
|===
26+
| Feature
27+
| Details
28+
29+
a|
30+
label:functionality[]
31+
label:removed[]
32+
[source, cypher, role="noheader"]
33+
----
34+
RETURN 1 as my\u0085identifier
35+
----
36+
a|
37+
The Unicode character \`\u0085` has been removed for unescaped identifiers and is now considered a whitespace character.
38+
To continue using it, escape the identifier by adding backticks around it.
39+
This applies to all unescaped identifiers in Cypher, such as label expressions, properties, variable names, or parameters.
40+
In the given example, the quoted identifier would be \`my�identifier`.
41+
42+
a|
43+
label:functionality[]
44+
label:removed[]
45+
[source, cypher, role="noheader"]
46+
----
47+
RETURN 1 as my$Identifier
48+
----
49+
a|
50+
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.
51+
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`.
52+
53+
The following Unicode Characters are removed in identifiers:
54+
'\u0000', '\u0001', '\u0002', '\u0003', '\u0004', '\u0005', '\u0006', '\u0007',
55+
'\u0008', '\u000E', '\u000F', '\u0010', '\u0011', '\u0012', '\u0013', '\u0014',
56+
'\u0015', '\u0016', '\u0017', '\u0018', '\u0019', '\u001A', '\u001B', '\u007F',
57+
'\u0080', '\u0081', '\u0082', '\u0083', '\u0084', '\u0086', '\u0087', '\u0088',
58+
'\u0089', '\u008A', '\u008B', '\u008C', '\u008D', '\u008E', '\u008F', '\u0090',
59+
'\u0091', '\u0092', '\u0093', '\u0094', '\u0095', '\u0096', '\u0097', '\u0098',
60+
'\u0099', '\u009A', '\u009B', '\u009C', '\u009D', '\u009E', '\u009F', '\u0024',
61+
'\u00A2', '\u00A3', '\u00A4', '\u00A5', '\u00AD', '\u0600', '\u0601', '\u0602',
62+
'\u0603', '\u0604', '\u0605', '\u061C', '\u06DD', '\u070F', '\u08E2', '\u180E',
63+
'\u200B', '\u200C', '\u200D', '\u200E', '\u200F', '\u202A', '\u202B', '\u202C',
64+
'\u202D', '\u202E', '\u2060', '\u2061', '\u2062', '\u2063', '\u2064', '\u2066',
65+
'\u2067', '\u2068', '\u2069', '\u206A', '\u206B', '\u206C', '\u206D', '\u206E',
66+
'\u206F', '\u2E2F', '\uFEFF', '\uFFF9', '\uFFFA', '\uFFFB'
67+
|===
68+
69+
1970
[[cypher-deprecations-additions-removals-5.25]]
2071
== Neo4j 5.25
2172

@@ -25,7 +76,6 @@ Replacement syntax for deprecated and removed features are also indicated.
2576
|===
2677
| Feature
2778
| Details
28-
2979
a|
3080
label:functionality[]
3181
label:deprecated[]
@@ -55,6 +105,7 @@ CREATE DATABASE db OPTIONS { existingDataSeedServer: ... }
55105

56106

57107

108+
>>>>>>> cypher-25
58109
[[cypher-deprecations-additions-removals-5.24]]
59110
== Neo4j 5.24
60111

modules/ROOT/pages/syntax/parsing.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ The following unicode characters are considered as whitespace:
5656
| Group separator | `\u001D`
5757
| Record separator | `\u001E`
5858
| Unit separator | `\u001F`
59+
| Next Line | `\u0085`
5960
|===
6061

6162
It is possible to have multiple whitespace characters in a row, and will have the same effect as using a single whitespace.

0 commit comments

Comments
 (0)