Deprecations, additions and compatibility
Removals, deprecations, additions and extensions
The following tables lists all the features which have been removed, deprecated, added or extended in Cypher®. Replacement syntax for deprecated and removed features are also indicated.
Version 3.0
Feature | Type | Change | Details |
---|---|---|---|
|
Function |
Removed |
Replaced by exists() |
|
Function |
Removed |
Replaced by toString() |
|
Syntax |
Deprecated |
Replaced by $parameter |
Function |
Added |
||
Clause |
Added |
||
Function |
Added |
||
Function |
Added |
||
Function |
Added |
||
Functionality |
Added |
||
Function |
Extended |
Now also allows Boolean values as input |
Version 3.1
Feature | Type | Change | Details |
---|---|---|---|
|
Function |
Deprecated |
Replaced by relationships() |
|
Function |
Deprecated |
Replaced by toInteger() |
|
Function |
Deprecated |
Replaced by toLower() |
|
Function |
Deprecated |
Replaced by toUpper() |
Function |
Added |
||
Syntax |
Added |
||
Syntax |
Added |
||
Functionality |
Added |
||
Clause |
Extended |
Records returned by |
Version 3.2
Feature | Type | Change | Details |
---|---|---|---|
|
Functionality |
Removed |
All queries now use the cost planner. Any query prepended thus will fall back to using Cypher 3.1. |
|
Clause |
Removed |
Running such queries will fall back to using Cypher 3.1 (and use the rule planner) |
|
Clause |
Removed |
Running such queries will fall back to using Cypher 3.1 (and use the rule planner) |
|
Syntax |
Deprecated |
Replaced by |
|
Syntax |
Deprecated |
Replaced by |
|
Syntax |
Deprecated |
Replaced by |
|
Syntax |
Deprecated |
Replaced by |
Functionality |
Added |
||
Index |
Added |
||
Index |
Added |
Neo4j Enterprise Edition only |
|
|
Functionality |
Added |
Neo4j Enterprise Edition only |
Function |
Extended |
Now also allows a list as input |
|
Function |
Extended |
Now also supports aggregation over a set containing both strings and numbers |
Version 3.3
Feature | Type | Change | Details |
---|---|---|---|
|
Clause |
Removed |
As in Cypher 3.2, any queries using the |
|
Functionality |
Added |
Neo4j Enterprise Edition only |
Function |
Extended |
Now also supports aggregation over sets containing lists of strings and/or numbers, as well as over sets containing strings, numbers, and lists of strings and/or numbers |
Version 3.4
Feature | Type | Change | Details |
---|---|---|---|
Functionality |
Amendment |
A point — irrespective of which Coordinate Reference System is used — can be stored as a property and is able to be backed by an index. Prior to this, a point was a virtual property only. |
|
Function |
Added |
||
Function |
Added |
||
Function |
Added |
||
Functionality |
Added |
Supports storing, indexing and working with the following temporal types: Date, Time, LocalTime, DateTime, LocalDateTime and Duration. |
|
Functionality |
Added |
Functions allowing for the creation and manipulation of values for each temporal type — Date, Time, LocalTime, DateTime, LocalDateTime and Duration. |
|
Functionality |
Added |
Operators allowing for the manipulation of values for each temporal type — Date, Time, LocalTime, DateTime, LocalDateTime and Duration. |
|
Function |
Extended |
Now also allows temporal values as input (i.e. values of type Date, Time, LocalTime, DateTime, LocalDateTime or Duration). |
Version 3.5
Feature | Type | Change | Details |
---|---|---|---|
|
Functionality |
Deprecated |
The compiled runtime will be discontinued in the next major release. It might still be used for default queries in order to not cause regressions, but explicitly requesting it will not be possible. |
|
Function |
Deprecated |
Replaced by list comprehension |
|
Function |
Deprecated |
Replaced by list comprehension |
Compatibility
Older versions of the language can still be accessed if required. There are two ways to select which version to use in queries.
-
Setting a version for all queries: You can configure your database with the configuration parameter
cypher.default_language_version
, and enter which version you’d like to use (see Supported language versions). Every Cypher query will use this version, provided the query hasn’t explicitly been configured as described in the next item below. -
Setting a version on a query by query basis: The other method is to set the version for a particular query. Prepending a query with
CYPHER 2.3
will execute the query with the version of Cypher included in Neo4j 2.3.
Below is an example using the has()
function:
CYPHER 2.3
MATCH (n:Person)
WHERE has(n.age)
RETURN n.name, n.age
Supported language versions
Neo4j 3.5 supports the following versions of the Cypher language:
-
Neo4j Cypher 3.5
-
Neo4j Cypher 3.4
-
Neo4j Cypher 2.3
Each release of Neo4j supports a limited number of old Cypher Language Versions. When you upgrade to a new release of Neo4j, please make sure that it supports the Cypher language version you need. If not, you may need to modify your queries to work with a newer Cypher language version. |