Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
Original file line number Diff line number Diff line change
Expand Up @@ -1959,6 +1959,8 @@ a|Rows: 2
[[access-control-dbms-administration-setting]]
== The DBMS `SETTING` privileges

_This feature was introduced in Neo4j 5.6._

The ability to show configuration settings can be granted via the `SHOW SETTING` privilege.
A role with this privilege is allowed to query the configuration settings matched by the xref::administration/access-control/dbms-administration.adoc#access-control-name-globbing[name-globbing].

Expand Down
4 changes: 3 additions & 1 deletion modules/ROOT/pages/administration/databases.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,7 @@ If a user has not been granted `ACCESS` privilege to any databases nor any of th
====
[NOTE]
====
Databases hosted on servers that are offline are also returned by the `SHOW DATABASES` command.
As of Neo4j 5.3, databases hosted on servers that are offline are also returned by the `SHOW DATABASES` command.
For such databases, the `address` column displays `NULL`, the `currentStatus` column displays `unknown`, and the `statusMessage` displays `Server is unavailable`.
====

Expand Down Expand Up @@ -1117,6 +1117,8 @@ To ensure the database to be dropped is standard and not composite, the user fir
[[administration-wait-nowait]]
== Wait options

_The_ `WAIT` _subclause was added as an option to the_ `ALTER DATABASE` _command in Neo4j 5.7._

Aside from `SHOW DATABASES`, all database management commands accept an optional `WAIT`/`NOWAIT` clause.
The `WAIT`/`NOWAIT` clause allows you to specify a time limit in which the command must complete and return.

Expand Down
9 changes: 5 additions & 4 deletions modules/ROOT/pages/administration/servers.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,7 @@ This may not be specified in combination with `allowedDatabases`.
| tags
| list of server tags
| List of server tags used during database allocation and for load balancing and routing policies.
label:new[Introduced in 5.6]
|===

[NOTE]
Expand Down Expand Up @@ -370,6 +371,7 @@ This may not be specified in combination with `allowedDatabases`.
| tags
| list of server tags
| List of server tags used during database allocation and for load balancing and routing policies.
label:new[Introduced in 5.6]
|===

[NOTE]
Expand All @@ -394,9 +396,12 @@ The new name of the server must be unique.
[[server-management-reallocate]]
== Reallocate databases

_The_ `DRYRUN` _feature was introduced in Neo4j 5.2._

After enabling a server, `REALLOCATE DATABASES` can be used to make the cluster re-balance databases across all servers that are part of the cluster.
Using `DRYRUN REALLOCATE DATABASE` returns a view of how the databases would have been re-balanced if the command was executed without `DRYRUN`:


.Result
[options="header,footer", width="100%", cols="m,m,m,m,m,m"]
|===
Expand All @@ -406,10 +411,6 @@ Using `DRYRUN REALLOCATE DATABASE` returns a view of how the databases would hav
| "db3" | "server-1" | "00000000-94ff-4ede-87be-3d741b795480" | "server-5" | "00000003-0df7-4057-81fd-1cf43c9ef5f7" | "primary"
|===

[NOTE]
====
`DRYRUN` is introduced in Neo4j 5.2, and thus is not available in earlier minor releases of v5.
====

[role=not-on-aura]
[[server-management-deallocate]]
Expand Down
3 changes: 3 additions & 0 deletions modules/ROOT/pages/clauses/call-subquery.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -607,6 +607,9 @@ For larger data sets, you might want to use larger batch sizes, such as `10000 R
====

=== Error behaviour [[txs_error_behaviour]]

_This feature was introduced in Neo4j 5.7._

Users can choose one of three different option flags to control the behaviour
in case of an error occurring in any of the inner transactions of `+CALL { ... } IN TRANSACTIONS+`:

Expand Down
5 changes: 1 addition & 4 deletions modules/ROOT/pages/clauses/listing-settings.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,7 @@
[[query-listing-settings]]
= SHOW SETTINGS

[abstract]
--
This section explains the `SHOW SETTINGS` command.
--
_This feature was introduced in Neo4j 5.6._

Listing the configuration settings on a server can be done with `SHOW SETTINGS`.

Expand Down
4 changes: 4 additions & 0 deletions modules/ROOT/pages/constraints/examples.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,8 @@ RETURN book1, book2
[[constraints-examples-relationship-uniqueness]]
== Relationship property uniqueness constraints

_This feature was introduced in Neo4j 5.7._

A relationship property uniqueness constraint ensures that all relationships with a particular relationship type have a set of defined properties whose combined value is unique when existing.

* xref::constraints/examples.adoc#constraints-create-a-relationship-uniqueness-constraints[]
Expand Down Expand Up @@ -1400,6 +1402,8 @@ RETURN actor, 'non-existing' AS reason
[[constraints-examples-relationship-key]]
== Relationship key constraints

_This feature was introduced in Neo4j 5.7._

A relationship key constraint ensures that all relationships with a particular relationship type have a set of defined properties whose combined value is unique.
It also ensures that all properties in the set are present.

Expand Down
4 changes: 4 additions & 0 deletions modules/ROOT/pages/constraints/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ For property uniqueness constraints on multiple properties, the combination of t
Node property uniqueness constraints do not require all nodes to have a unique value for the properties listed (nodes without all properties are not subject to this rule).

*Unique relationship property constraints*::
_This feature was introduced in Neo4j 5.7._
+
Unique relationship property constraints, or relationship property uniqueness constraints, ensure that property values are unique for all relationships with a specific type.
For property uniqueness constraints on multiple properties, the combination of the property values is unique.
Relationship property uniqueness constraints do not require all relationships to have a unique value for the properties listed (relationships without all properties are not subject to this rule).
Expand Down Expand Up @@ -48,6 +50,8 @@ Queries attempting to do any of the following will fail:
* Update the properties so that the combination of property values is no longer unique.

*Relationship key constraints* label:enterprise-edition[]::
_This feature was introduced in Neo4j 5.7._
+
Relationship key constraints ensure that, for a given type and set of properties:
+
[lowerroman]
Expand Down
1 change: 1 addition & 0 deletions modules/ROOT/pages/constraints/syntax.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -261,6 +261,7 @@ This is the default if none is given.

|UNIQUE[NESS]
| Returns all property uniqueness constraints, for both nodes and relationships.
_This feature was introduced in Neo4j 5.3._

|NODE [PROPERTY] EXIST[ENCE]
| Returns the node property existence constraints.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,24 @@ Replacement syntax for deprecated and removed features are also indicated.
[[cypher-deprecations-additions-removals-5.8]]
== Version 5.8

=== New features

[cols="2", options="header"]
|===
| Feature
| Details

a|
label:functionality[]
label:new[]

New operator: `AssertSameRelationship`

a|
The `AssertSameRelationship` operator is used to ensure that no relationship property uniqueness constraints are violated in the slotted and interpreted runtime.
More information can be found xref::execution-plans/operators.adoc#query-plan-assert-same-relationship[here].

|===
=== Updated features

[cols="2", options="header"]
Expand Down Expand Up @@ -50,7 +68,7 @@ The `trackedSince` column returns the time when usage statistics tracking starte
a|
label:functionality[]
label:new[]
[source, syntax]
[source, syntax, role=noheader]
----
CALL {
<inner>
Expand Down Expand Up @@ -161,14 +179,31 @@ The existing `UNIQUENESS` filter will now return both node and relationship prop

=== New features


[cols="2", options="header"]
|===
| Feature
| Details

a|
label:functionality[]
label:added[]
label:new[]

`server.tag`

a| New functionality to change tags at runtime via `ALTER SERVER`.
More information can be found xref::administration/servers.adoc#server-management-alter-server[here].

|===

[cols="2", options="header"]
|===
| Feature
| Details

a|
label:functionality[]
label:new[]
[source, cypher, role="noheader"]
----
COLLECT {
Expand Down Expand Up @@ -215,6 +250,25 @@ New privilege that controls a user's access to desired configuration settings.
[[cypher-deprecations-additions-removals-5.5]]
== Version 5.5

=== New features

[cols="2", options="header"]
|===
| Feature
| Details

a|
label:functionality[]
label:new[]

New operator: `IntersectionNodeByLabelsScan`

a|
The `IntersectionNodeByLabelsScan` operator fetches all nodes that have all of the provided labels from the node label index.
More information can be found xref::execution-plans/operators.adoc#query-plan-intersection-node-by-labels-scan[here].

|===

=== Deprecated features

[cols="2", options="header"]
Expand Down
4 changes: 4 additions & 0 deletions modules/ROOT/pages/execution-plans/operators.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -737,6 +737,8 @@ Total database accesses: 13, total allocated memory: 184
// IntersectionNodeByLabelsScan
// New in 5.4

_This feature was introduced in Neo4j 5.5._

The `IntersectionNodeByLabelsScan` operator fetches all nodes that have all of the provided labels from the node label index.
======

Expand Down Expand Up @@ -2826,6 +2828,8 @@ Total database accesses: 2, total allocated memory: 64
== Assert Same Relationship
// AssertSameRelationship

_This feature was introduced in Neo4j 5.8._

The `AssertSameRelationship` operator is used to ensure that no relationship property uniqueness constraints are violated in the slotted and interpreted runtime.
The example looks for the presence of a `WORKS_IN` relationship with the supplied `id` and `badgeNumber`.
If it can't be found, then it will be created.
Expand Down
12 changes: 7 additions & 5 deletions modules/ROOT/pages/indexes-for-search-performance.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,8 @@ ON (r.propertyName)

More details about the syntax descriptions can be found xref:administration/index.adoc#administration-syntax[here].

Text indexes have two index providers available, `text-2.0` (default) and `text-1.0` (deprecated), and no supported index configuration.
As of Neo4j 5.1, text indexes have two index providers available, `text-2.0` (default) and `text-1.0` (deprecated), and no supported index configuration.


[NOTE]
====
Expand Down Expand Up @@ -663,20 +664,21 @@ This command will produce a table with the following columns:
| The name of the constraint the index is associated with or `null` if the index is not associated with any constraint. label:default-output[]
| `STRING`

// New in 5.8
| `lastRead`
| The last time the index was used for reading.
Returns `null` if the index has not been read since `trackedSince`, or if the statistics are not tracked. label:default-output[]
Returns `null` if the index has not been read since `trackedSince`, or if the statistics are not tracked.
label:default-output[]
label:new[Introduced in 5.8]
| `DATETIME`

// New in 5.8
| `readCount`
| The number of read queries that have been issued to this index since `trackedSince`, or `null` if the statistics are not tracked. label:default-output[]
label:new[Introduced in 5.8]
| `INTEGER`

// New in 5.8
| `trackedSince`
| The time when usage statistics tracking started for this index, or `null` if the statistics are not tracked.
label:new[Introduced in 5.8]
| `DATETIME`

| `options`
Expand Down
14 changes: 14 additions & 0 deletions modules/ROOT/pages/syntax/expressions.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -518,6 +518,8 @@ RETURN person.name AS name, EXISTS {
[[existential-subquery-with-union]]
==== `EXISTS` subquery with a `UNION`

_This feature was introduced in Neo4j 5.3._

`Exists` can be used with a `UNION` clause, and the `RETURN` clauses are not required.
It is worth noting that if one branch has a `RETURN` clause, then all branches require one.
The below example demonstrates that if one of the `UNION` branches was to return at least one row, the entire `EXISTS` expression will evaluate to true.
Expand Down Expand Up @@ -549,6 +551,8 @@ RETURN
[[existential-subquery-with-with]]
==== `EXISTS` subquery with `WITH`

_This feature was introduced in Neo4j 5.3._

Variables from the outside scope are visible for the entire subquery, even when using a `WITH` clause.
This means that shadowing of these variables is not allowed.
An outside scope variable is shadowed when a newly introduced variable within the inner scope is defined with the same variable.
Expand Down Expand Up @@ -579,6 +583,8 @@ RETURN person.name AS name
[[existential-subquery-with-return]]
==== `EXISTS` subquery with `RETURN`

_This feature was introduced in Neo4j 5.3._

`EXISTS` subqueries do not require a `RETURN` clause at the end of the subquery. If one is present, it does not
need to be aliased, which is different compared to xref::clauses/call-subquery.adoc[`CALL` subqueries].
Any variables returned in an `EXISTS` subquery will not be available after the subquery.
Expand Down Expand Up @@ -669,6 +675,8 @@ RETURN person.name AS name
[[count-subquery-with-union]]
==== `COUNT` subquery with a `UNION`

_This feature was introduced in Neo4j 5.3._

`COUNT` can be used with a `UNION` clause. If the `UNION` clause is distinct, the `RETURN` clause is required.
`UNION ALL` clauses do not require the `RETURN` clause. However, it is worth noting that if one branch has a `RETURN` clause, then all require one.
The below example shows the count of pets each person has by using a `UNION` clause:
Expand Down Expand Up @@ -702,6 +710,8 @@ RETURN
[[count-subquery-with-with]]
==== `COUNT` subquery with `WITH`

_This feature was introduced in Neo4j 5.3._

Variables from the outside scope are visible for the entire subquery, even when using a `WITH` clause.
This means that shadowing of these variables is not allowed.
An outside scope variable is shadowed when a newly introduced variable within the inner scope is defined with the same variable.
Expand Down Expand Up @@ -839,6 +849,8 @@ RETURN COUNT { (person)-[:HAS_DOG]->(:Dog) } AS numDogs,
[[count-subquery-with-return]]
==== `COUNT` subquery with `RETURN`

_This feature was introduced in Neo4j 5.3._

`COUNT` subqueries do not require a `RETURN` clause at the end of the subquery. If one is present, it does not need to be aliased.
This is a difference compared to from xref::clauses/call-subquery.adoc[`CALL` subqueries].
Any variables returned in a `COUNT` subquery will not be available after the subquery.
Expand Down Expand Up @@ -866,6 +878,8 @@ RETURN person.name AS name
[[collect-subqueries]]
=== `COLLECT` subqueries

_This feature was introduced in Neo4j 5.6._

A `COLLECT` subquery expression can be used to create a list with the rows returned by a given subquery.

Any non-writing query is allowed.
Expand Down