Release Date: 28 June 2024
Aura June 2024 (Neo4j 5.21)
Highlights
Surface for Developers and Data Scientists
- Greatly improved scalability of the block format importer, allowing for good performance even for large data sets.
- Metric <prefix>.store.size.database.available_reserved becomes public. This allows us to estimate reserved but available space in the database, in bytes. See Monitoring and Metrics reference documentation.
Language and Graph Model
- Introduces support for CALL {…} IN CONCURRENT TRANSACTIONS. This optimizes the use of available processing resources, enabling subqueries to be broken up into multiple batches and executed concurrently. For details see Subqueries in Transactions – Cypher manual. Syntax:
CALL { subQuery } IN [[concurrency] CONCURRENT] TRANSACTIONS [OF batchSize ROW[S]] [REPORT STATUS AS statusVar] [ON ERROR {CONTINUE | BREAK | FAIL}];
- Property-based access control allows creation of simple data-driven rules to control READ and TRAVERSE privileges on nodes. For example, to specify that users with the reader role should be able to view the name property of p:Person nodes in cases where p.classificationLevel < 5 , use the following command:
GRANT READ {name} ON GRAPH * FOR (p:Person) WHERE p.classificationLevel < 5 TO reader.
For details refer to the Property Based Access Control Operations manual.
- SHORTEST: This release introduces CYPHER statements: ALL SHORTEST, SHORTEST k, SHORTEST k GROUPS, ANY. The new statements also support Quantified Path Patterns, combining shortest path-finding with the expressiveness of QPPs. For details please see the Shortest Path Cypher Manual.
- A new SubtractionNodeByLabelsScan operator delivers improved matching performance for label expressions with negation such as:
MATCH (:A1&A2..&!B1&!B2...)....
For more information refer to Operators Cypher manual.
- For GQL conformance we have introduced upper() and lower() functions, which are aliases for the toUpper() and toLower() functions.For more detail please refer to the Functions Cypher manual.
- Cypher now parses queries using the ANTLR based parser.
- A new deprecatedBy column has been added to the output of SHOW PROCEDURES [YIELD *] and SHOW FUNCTIONS [YIELD *] to show if the deprecated procedure/function has a replacement. For more details please refer to the Listing Procedures Cypher manual.
- FOREACH will now interpret scalar values as a list, similar to UNWIND.