RedisGraph 2.0 release notes

Requirements

RedisGraph v2.0.21 requires:

- Minimum Redis compatibility version (database): 5.0.7
- Minimum Redis Enterprise Software version (cluster): 5.4.11

v2.0.21 (October 2020)

This is a maintenance release for version 2.0.

Headlines:

- This release improves overall stability and provides fixes for issues found after the previous release.

Details:

- Minor enhancements:

    - #[1326](https://github.com/RedisGraph/RedisGraph/pull/1326), #[1330](https://github.com/RedisGraph/RedisGraph/pull/1330) Enable comments in Cypher queries.

- Bug fixes:

- #[1338](https://github.com/RedisGraph/RedisGraph/pull/1338) Update parser to support negative values.
- #[1319](https://github.com/RedisGraph/RedisGraph/pull/1319) Replace assertion with runtime error - execution plan building process is unable locate an operation suitable for a filter.
- #[1184](https://github.com/RedisGraph/RedisGraph/pull/1184) EXPLAIN and PROFILE are invalid clauses. They have counterpart commands `GRAPH.EXPLAIN` and `GRAPH.PROFILE`
- #[1212](https://github.com/RedisGraph/RedisGraph/pull/1212) Emit error on the creation of undirected edges.

v2.0.20 (September 2020)

This is a maintenance release for version 2.0.

Headlines:

- This release improves overall stability and provides fixes for issues found after the previous release.

Details:

- Minor updates:

    - #[1315](https://github.com/RedisGraph/RedisGraph/pull/1315) RediSearch 1.8.3
    - #[1276](https://github.com/RedisGraph/RedisGraph/pull/1276) Graph info is added to Redis crash report.
    - #[1265](https://github.com/RedisGraph/RedisGraph/pull/1265) Debug assertion functionality.

v2.0.19 (August 2020)

This is a maintenance release for version 2.0.

Headlines:

- This release improves overall stability and provides fixes for issues found after the previous release.

Details:

- Minor updates:
    - #[1229](https://github.com/RedisGraph/RedisGraph/pull/1229) Upgrade RediSearch dependency to 1.8.2
- Performance enhancements:
    - #[1218](https://github.com/RedisGraph/RedisGraph/pull/1218) Enable parameters support for ID-based entity retrieval
    - #[1242](https://github.com/RedisGraph/RedisGraph/pull/1242) Improve update logic, update RediSearch indices only once per update
    - #[1226](https://github.com/RedisGraph/RedisGraph/pull/1226) Let RediSearch perform document deletion when replacing a document
- Bug Fixes:
    - #[1223](https://github.com/RedisGraph/RedisGraph/pull/1223) Resolve race condition in accessing/updating attribute maps.
    - #[1196](https://github.com/RedisGraph/RedisGraph/pull/1196) Enable RediSearch [Garbage Collection]()

v2.0.15 (25 June 2020)

This is a maintenance release for version 2.0.

Headlines:

- This release improves overall stability and provides fixes for issues found after the previous release.

Details:

- Bug Fixes:
    - #[1159](https://github.com/RedisGraph/RedisGraph/pull/1159) `IN` operator didn't result in an index array lookup with parameterised array (`IN $param`).

v2.0.14 (22 June 2020)

This is a maintenance release for version 2.0.

Headlines:

- This release improves overall stability and provides fixes for issues found after the previous release.

Details:

- Bug Fixes:
    - #[1157](https://github.com/RedisGraph/RedisGraph/pull/1157) Index search not using query parameters.

v2.0.13 (15 June 2020)

This is a maintenance release for version 2.0.

Headlines:

- This release improves overall stability and provides fixes for issues found after the previous release.

Details:

- Enhancements:
    - #[1118](https://github.com/RedisGraph/RedisGraph/pull/1118) Added module configuration parameters for the number of threads in OpenMP and concurrent queries.
    - #[1121](https://github.com/RedisGraph/RedisGraph/pull/1121) [RediSearch](https://github.com/RediSearch/RediSearch/) v1.8.1

v2.0.12 (May 2020)

This is a maintenance release for version 2.0.

Headlines:

- This release improves overall stability and provides fixes for issues found after the previous release.

Details:

- Enhancements:
    - #[1103](https://github.com/RedisGraph/RedisGraph/pull/1103) RediSearch 1.8. This upgrade will reduce the resources required for Garbage Collection of indices inside RedisGraph.

v2.0.11 (April 2020)

This is a maintenance release for version 2.0.

Headlines:

- This release improves overall stability and provides fixes for issues found after the previous release.

Details:

- Minor Enhancements:
    - #[1056](https://github.com/RedisGraph/RedisGraph/pull/1056) Added `DISTINCT` support for paths and arrays.
- Minor Bugfixes:
    - #[1056](https://github.com/RedisGraph/RedisGraph/pull/1056) Streamlined logic for uniquing entities.
    - #[1056](https://github.com/RedisGraph/RedisGraph/pull/1056) Enabled comparison routine for paths.

v2.0.10 (29 March 2020)

Headlines:

- This release improves overall stability and provides fixes for issues found after the previous release.

Details:

- Minor Enhancements:
    - #[1035](https://github.com/redisgraph/redisgraph/issues/1035) - RediSearch version [1.6.11](https://github.com/RediSearch/RediSearch/releases/tag/v1.6.11).
- Bugfixes:
    - #[1017](https://github.com/redisgraph/redisgraph/issues/1017), #[1019](https://github.com/redisgraph/redisgraph/issues/1019) - Algebraic expressions correctness.
    - #[1020](https://github.com/redisgraph/redisgraph/issues/1020) - Support parameterised SKIP and LIMIT.

v2.0.9 (19 March 2020)

Headlines:

- This release improves overall stability and provides fixes for issues found after the previous release.

Details:

- Bugfixes:
    - #[1028](https://github.com/redisgraph/redisgraph/issues/1028) Ensure proper placement of Index Scans when partially replacing Filter ops.

v2.0.8 (18 March 2020)

Headlines:

- This release improves overall stability and provides fixes for issues found after the previous release.

Details:

- Bugfixes:
    - #[1023](https://github.com/redisgraph/redisgraph/issues/1023) Fix regression in checking argument counts to GRAPH endpoints.

v2.0.6 (15 March 2020)

Headlines:

- This release improves overall stability and provides fixes for issues found after the previous release.

Details:

- #[897](https://github.com/redisgraph/redisgraph/issues/897) GRAPH.SLOWLOG
- #[1004](https://github.com/redisgraph/redisgraph/issues/1004) Re-enable GRAPH.PROFILE
- #[917](https://github.com/redisgraph/redisgraph/issues/917), #[991](https://github.com/redisgraph/redisgraph/issues/991), #[940](https://github.com/redisgraph/redisgraph/issues/940), #[984](https://github.com/redisgraph/redisgraph/issues/984) Memory leak fixes
- #[925](https://github.com/redisgraph/redisgraph/issues/925) Bug fix within RediSearch
- #[1001](https://github.com/redisgraph/redisgraph/issues/1001) Bug fix label scan invalid range

v2.0.5 (23 February 2020)

Headlines:

- This release improves overall stability and provides fixes for issues found after the previous release.

Details:

- Enhancement:
    - #[955](https://github.com/redisgraph/redisgraph/issues/955)  Switch OR,AND boolean semiring to ANY,PAIR.

v2.0.4 (23 February 2020)

Details:

- Enhancement:
    - Reduce GraphBLAS size

v2.0.2 (23 February 2020)

Headlines:

- This release improves overall stability and provides fixes for issues found after the previous release.

Details:

- Improved error reporting:
    - #[925](https://github.com/redisgraph/redisgraph/issues/925) RediSearch query error reporting
    - #[919](https://github.com/redisgraph/redisgraph/issues/919) Added non existing entity runtime error
- Enhancements:
    - #[942](https://github.com/redisgraph/redisgraph/issues/942) Update GraphBLAS version (3.2.0)
    - #[922](https://github.com/redisgraph/redisgraph/issues/922) Filter tree compaction
    - #[906](https://github.com/redisgraph/redisgraph/issues/906) Optimize cartesian product
    - #[898](https://github.com/redisgraph/redisgraph/issues/898) Granular matrix locking
- Bug fixes:
    - #[917](https://github.com/redisgraph/redisgraph/issues/917) #[940](https://github.com/redisgraph/redisgraph/issues/940) Resolve memory leaks
    - #[938](https://github.com/RedisGraph/RedisGraph/pull/938) Label matrix should be fetch right before eval

v2.0 GA (2.0.1 - January 2020)

This is the General Availability (GA) release of RedisGraph 2.0 (2.0.1)!

Headlines:

- Full Text Search (FTS) enabling Graph-aided Search.
- Full graph response enabling visualisation.
- Substantial amount of Cypher coverage.
- Performance improvements of up to 4x compared to RedisGraph 1.2.

(We will blog about this release soon including performance improvements results and the link here)

Full details:

- Major features
    - #[339](https://github.com/RedisGraph/RedisGraph/issues/339) Full Graph Response.  RedisGraph now allows to return Graph entities such as Nodes and Relationships.  This feature also enables graph visualisation.
    - #[558](https://github.com/RedisGraph/RedisGraph/issues/558) Indexing functionality replaced by [RediSearch](redisearch.io). This results in support for
        - compound indices
        - full text search
        - graph-aided search
    - #[691](https://github.com/RedisGraph/RedisGraph/issues/691) RediSearch index is used with `IN` operator on indexed properties.
    - #[488](https://github.com/RedisGraph/RedisGraph/issues/488) Replace flex/lemon parser with [libcypher-parser](https://github.com/cleishm/libcypher-parser).
    - #[574](https://github.com/RedisGraph/RedisGraph/issues/574) Introduction of the array data type. This introduces significant support of Cypher as well as properties can be arrays on both nodes and relationships.
    - Cypher
        - #[714](https://github.com/RedisGraph/RedisGraph/issues/714) `MERGE` can be combined with any other clause. `MERGE` will take into account bounded entities.
        - #[786](https://github.com/RedisGraph/RedisGraph/issues/786) Support for passing all supported graph data types (Node, Relationship, Array,...) as arguments to procedure calls, rather than requiring all arguments to be Strings.
        - #[708](https://github.com/RedisGraph/RedisGraph/issues/708) Named path support.
        - #[717](https://github.com/RedisGraph/RedisGraph/issues/717) `count(*)`
        - #[730](https://github.com/RedisGraph/RedisGraph/issues/730) `UNION`
        - #[757](https://github.com/RedisGraph/RedisGraph/issues/757) `coalesce`
        - #[658](https://github.com/RedisGraph/RedisGraph/issues/658) Support for `COUNT DISTINCT`
        - #[574](https://github.com/RedisGraph/RedisGraph/issues/574) with the array data support comes `IN`, `collect`, `head`,`range`, `reverse`, `size`, `tail`
        - #[624](https://github.com/RedisGraph/RedisGraph/issues/624) `randomUUID()`
        - #[632](https://github.com/RedisGraph/RedisGraph/issues/632) `IS NULL` and `IS NOT NULL`.
        - #[594](https://github.com/RedisGraph/RedisGraph/issues/594) Support dynamic inline properties for `CREATE` and `MERGE` patterns.
        - #[583](https://github.com/RedisGraph/RedisGraph/issues/583) `NOT` Operator.
        - #[569](https://github.com/RedisGraph/RedisGraph/issues/569) `timestamp()` function.
        - #[586](https://github.com/RedisGraph/RedisGraph/issues/586) `CASE WHEN` (simple form).
        - #[582](https://github.com/RedisGraph/RedisGraph/issues/582) `contains` function.
        - #[596](https://github.com/RedisGraph/RedisGraph/issues/596) `indegree` and `outdegree` functions for nodes.
        - #[587](https://github.com/RedisGraph/RedisGraph/issues/587) improved boolean logic.
        - #[539](https://github.com/RedisGraph/RedisGraph/issues/539) Reusable entities in pattern matching.
    - #[668](https://github.com/RedisGraph/RedisGraph/issues/668) PageRank support.
    - #[713](https://github.com/RedisGraph/RedisGraph/issues/713) Parameterised queries support. Most client drivers are updated. This enables future performance enhancements for query caching.
    - #[662](https://github.com/RedisGraph/RedisGraph/issues/662) Support for AOF.
- Enhancements
    - #[752](https://github.com/RedisGraph/RedisGraph/issues/752) Use GraphBLAS 3.1.1.
    - #[674](https://github.com/RedisGraph/RedisGraph/issues/674) `GRAPH.QUERY` will not fail even if graph doesn't exist.
    - #[613](https://github.com/RedisGraph/RedisGraph/issues/613) Runtime arithmetic error handling.
- Performance Improvements
    - #[773](https://github.com/RedisGraph/RedisGraph/issues/773) Bulk deletion of relationships. Deletion of relationships within the same query will be efficiently handled by batch operations in GraphBLAS.
    - #[783](https://github.com/RedisGraph/RedisGraph/issues/783) Better replication support. Only write queries that mutate the graph or create indices will be replicated to AOF and slaves.
    - #[783](https://github.com/RedisGraph/RedisGraph/issues/783) Better commit flow. The Redis Global Lock and RedisGraphs's R/W lock are released once writes are done. Fixed duplicate replications in queries with multiple write segments.
    - #[640](https://github.com/RedisGraph/RedisGraph/issues/640) GraphBlas to support OpenMP.
    - #[532](https://github.com/RedisGraph/RedisGraph/issues/532) #[535](https://github.com/RedisGraph/RedisGraph/issues/535) Counting edges of given type by reducing matrices.
    - #[534](https://github.com/RedisGraph/RedisGraph/issues/534) #[571](https://github.com/RedisGraph/RedisGraph/issues/571) Query parsing and `GRAPH.EXPLAIN` in dedicated thread.
    - #[550](https://github.com/RedisGraph/RedisGraph/issues/550) #[555](https://github.com/RedisGraph/RedisGraph/issues/555) Optimize cartesian product by reducing to join.
    - #[641](https://github.com/RedisGraph/RedisGraph/issues/641) Cartesian products with multiple incoming streams >2 can now be optimized with "HashJoin".
- Bugfixes
    - #[783](https://github.com/RedisGraph/RedisGraph/issues/783) Master-replica replication - slaves were dropping index mutations caused by procedure calls.
    - #[785](https://github.com/RedisGraph/RedisGraph/issues/785) Solved several major memory leaks.
    - #[795](https://github.com/RedisGraph/RedisGraph/issues/795) The underlying graph object's attributes were not updated on `RENAME`.
    - #[720](https://github.com/RedisGraph/RedisGraph/issues/720) Validation of function calls in `WITH` and `CREATE` clauses e.g. `CREATE (a {v: fake()})`.
    - #[732](https://github.com/RedisGraph/RedisGraph/issues/732), #[736](https://github.com/RedisGraph/RedisGraph/issues/736), #[747](https://github.com/RedisGraph/RedisGraph/issues/747) Detect cycles in graph and generate algebraic expression.
    - #[734](https://github.com/RedisGraph/RedisGraph/issues/734) Fix access of uninitialised GrB_Info.
    - #[735](https://github.com/RedisGraph/RedisGraph/issues/735) Index scans with `IN` filters did not compare with strings properly,
    - #[758](https://github.com/RedisGraph/RedisGraph/issues/758) Validate that during `UNION` all return clauses are annotated.
    - #[412](https://github.com/RedisGraph/RedisGraph/issues/412) Better handling for `GRAPH.DELETE`.
    - #[537](https://github.com/RedisGraph/RedisGraph/issues/537) Wrong row index within expand-into, enabled few TCK tests.
    - #[591](https://github.com/RedisGraph/RedisGraph/issues/591) Emit validation error when an alias refers to both nodes and edges.
    - #[606](https://github.com/RedisGraph/RedisGraph/issues/606) Fix Record ID of edges held in ExpandInto op.
    - #[607](https://github.com/RedisGraph/RedisGraph/issues/607) All ops NULL-set variables in their free routines (memory).
    - #[893](https://github.com/RedisGraph/RedisGraph/issues/893) Preserve the children array order when replacing operations.

The version inside Redis will be 20001 or 2.0.1 in semantic versioning.


RedisGraph 2.10 release notes

Summary: Introduces new path algorithms, additional expressivity (constructs and functions), performance improvements, and bug fixes.

Requirements

RedisGraph v2.10.15 requires:

- Minimum Redis compatibility version (database): 6.2.0
- Minimum Redis Enterprise Software version (cluster): 6.2.8

v2.10.15 (September 2023)

This is a maintenance release for RedisGraph 2.10.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

- Bug fixes:

  - [#3172](https://github.com/RedisGraph/RedisGraph/pull/3172) Crash on certain write queries (MOD-5645)
  - [#3179](https://github.com/RedisGraph/RedisGraph/pull/3179) High CPU on idle

- Improvements:

  - [#3184](https://github.com/RedisGraph/RedisGraph/pull/3184) Revert breaking change introduced in 2.10: `toString` supports list argument again
  - [#3185](https://github.com/RedisGraph/RedisGraph/pull/3185) Don’t write AUX field in the RDB file when there are no graphs in the keyspace

v2.10.12 (July 2023)

This is a maintenance release for RedisGraph 2.10.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

- Bug fixes:

  - [#3129](https://github.com/RedisGraph/RedisGraph/pull/3129) Crash on certain queries (`INDEX SCAN` followed by `DEL` followed by `SET`) (MOD-5430)

v2.10.11 (June 2023)

This is a maintenance release for RedisGraph 2.10.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

- Bug fixes:

  - [#3096](https://github.com/RedisGraph/RedisGraph/pull/3096) Potential crash on query timeout (MOD-5202)
  - [#3042](https://github.com/RedisGraph/RedisGraph/issues/3042), [#3052](https://github.com/RedisGraph/RedisGraph/issues/3052) Potential crashes due to false assertions

v2.10.10 (April 2023)

This is a maintenance release for RedisGraph 2.10.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

- Bug fixes:

  - [#3038](https://github.com/RedisGraph/RedisGraph/issues/3038) Potential crash when a query with a `UNION` clause sets or modifies an indexed property
  - [#2631](https://github.com/RedisGraph/RedisGraph/issues/2631), [#2968](https://github.com/RedisGraph/RedisGraph/issues/2968) Potential crash on certain `MATCH` clauses where label filters are used (MOD-5093)
  - [#2957](https://github.com/RedisGraph/RedisGraph/issues/2957) Label filters in expressions such as `WITH n MATCH (n:X)` are ignored
  - [#2931](https://github.com/RedisGraph/RedisGraph/issues/2931), [#3027](https://github.com/RedisGraph/RedisGraph/issues/3027) Wrong overflow error message

v2.10.9 (March 2023)

This is a maintenance release for RedisGraph 2.10.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Bug fixes:

  - [#2880](https://github.com/RedisGraph/RedisGraph/issues/2880) Potential crash when using `WITH *` expressions
  - [#2917](https://github.com/RedisGraph/RedisGraph/issues/2917) Potential crash when using `CASE` expressions (MOD-4873)
  - [#2836](https://github.com/RedisGraph/RedisGraph/issues/2836) Potential crash on `*0` variable-length path (MOD-4817)
  - [#2916](https://github.com/RedisGraph/RedisGraph/issues/2916) Potential crash when executing concurrent queries that utilize full-text indices (MOD-4818)

v2.10.8 (February 2023)

This is a maintenance release for RedisGraph 2.10.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Bug fixes:

  - [#2777](https://github.com/RedisGraph/RedisGraph/issues/2777), [#2841](https://github.com/RedisGraph/RedisGraph/issues/2841) Potential crash when sending queries from multiple connections and timeout is not 0
  - [#2844](https://github.com/RedisGraph/RedisGraph/issues/2844) Potential partial results when same parametrized query is running from multiple connections
  - [#2739](https://github.com/RedisGraph/RedisGraph/issues/2739), [#2774](https://github.com/RedisGraph/RedisGraph/issues/2774) Paths with exact variable length >1 are not matched
  - [#2794](https://github.com/RedisGraph/RedisGraph/issues/2794) `toInteger` and `toIntegerOrNull` don't convert Booleans
  - [#2798](https://github.com/RedisGraph/RedisGraph/issues/2798) `right` and `left` should reply with an error when `length` is null
  - [#2809](https://github.com/RedisGraph/RedisGraph/issues/2809) `TIMEOUT_MAX` configuration parameter is not enforced when `TIMEOUT_DEFAULT` is 0
  - [#2780](https://github.com/RedisGraph/RedisGraph/issues/2780) `indegree` and `outdegree` - relationships are counted more than once when same relationship type is supplied more than once

- Improvements:

  - [#2790](https://github.com/RedisGraph/RedisGraph/pull/2790) Improved performance by disabling SuiteSparse:GraphBLAS' global free pool
  - [#2758](https://github.com/RedisGraph/RedisGraph/pull/2758) Improved edge deletion performance
  - [#2781](https://github.com/RedisGraph/RedisGraph/issues/2781) `indegree` and `outdegree` now also accept an argument which is a list of labels

v2.10.5 (December 2022)

This is a maintenance release for RedisGraph 2.10.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Bug fixes:

  - [#2754](https://github.com/RedisGraph/RedisGraph/pull/2754) Partial sync may hang (MOD-4594)

- Improvements:

  - [#2757](https://github.com/RedisGraph/RedisGraph/pull/2757) Improved performance of `indegree` and `outdegree`
  - [#2681](https://github.com/RedisGraph/RedisGraph/issues/2681) Fixed some error messages
  - [#2740](https://github.com/RedisGraph/RedisGraph/issues/2740) Don’t show partial results for timed-out `GRAPH.PROFILE`

v2.10 GA (v2.10.4) (November 2022)

This is the General Availability release of RedisGraph 2.10.

Highlights

RedisGraph 2.10 introduces new path algorithms, additional expressivity (constructs and functions), performance improvements, and bug fixes.

#### What's new in 2.10

- New pathfinding algorithms:
  - The `algo.SPpaths` procedure yields one, _n_, or all minimal-weight, optionally bounded-cost, optionally bounded-length paths between a given pair of nodes.
  - The `algo.SSpaths` procedure yields one, _n_, or all minimal-weight, optionally bounded-cost, optionally bounded-length paths from a given node.
- Introduce `SET` for adding node labels and `REMOVE` for removing node labels, node properties, and edge properties.
- Support deleting paths with `DELETE`.
- Introduce 29 functions: `toBoolean`, `toBooleanOrNull`, `toFloatOrNull`, `toIntegerOrNull`, `toStringOrNull`, `toBooleanList`, `toFloatList`, `toIntegerList`, `toStringList`, `properties`, `split`, `last`, `isEmpty`, `e`, `exp`, `log`, `log10`, `sin`, `cos`, `tan`, `cot`, `asin`, `acos`, `atan`, `atan2`, `degrees`, `radians`, `pi`, and `haversin`.
- Graph slow log can be reset with `GRAPH.SLOWLOG g RESET`.
- Queries are now atomic (_Atomicity_ is the guarantee that each query either succeeds or fails with no side effects). Whenever a failure occurs, the query effect is rolled back from an undo log.

Details

- Bug fixes (since 2.10-RC1):

  - [#2695](https://github.com/RedisGraph/RedisGraph/pull/2695) Potential crash on certain write queries (MOD-4286, MOD-4545)
  - [#2724](https://github.com/RedisGraph/RedisGraph/issues/2724) Potential crash when setting property values based on nonexistent properties
  - [#2460](https://github.com/RedisGraph/RedisGraph/issues/2460), [#2637](https://github.com/RedisGraph/RedisGraph/issues/2637), [#2680](https://github.com/RedisGraph/RedisGraph/issues/2680) Crash on invalid queries
  - [#2672](https://github.com/RedisGraph/RedisGraph/issues/2672) Wrong matching result on multiple labels
  - [#2643](https://github.com/RedisGraph/RedisGraph/issues/2643) Duplicate reports when matching relationship type `:R|R`
  - [#2687](https://github.com/RedisGraph/RedisGraph/issues/2687), [#2414](https://github.com/RedisGraph/RedisGraph/issues/2414) Error when `UNWIND`ing relationships
  - [#2636](https://github.com/RedisGraph/RedisGraph/issues/2636) `MERGE` ... `ON` ... - cannot remove property by setting it to null
  - [#2710](https://github.com/RedisGraph/RedisGraph/pull/2710) Undo log fix
  - [#2435](https://github.com/RedisGraph/RedisGraph/issues/2435) Incorrect result when comparing a value to NaN
  - [#2497](https://github.com/RedisGraph/RedisGraph/issues/2497) Incorrect result when comparing a value to null
  - [#2676](https://github.com/RedisGraph/RedisGraph/issues/2676) `sqrt`, `log`, `log10` - incorrect result for negative values
  - [#2213](https://github.com/RedisGraph/RedisGraph/issues/2213) Division and Modulo by zero - wrong behavior


RedisGraph 2.2 release notes

Summary: Support for scaling reads, OPTIONAL MATCH, query caching, and GRAPH.SLOWLOG.

Requirements

RedisGraph v2.2.16 requires:

- Minimum Redis compatibility version (database): 5.0.7
- Minimum Redis Enterprise Software version (cluster): 6.0.8

v2.2.16 (April 2021)

This is a maintenance release for version 2.2.

Update urgency: Medium

Headlines:

- This release improves overall stability and provides fixes for issues found after the previous release.

Details:

- Enhancements:

    - #[1610](https://github.com/RedisGraph/RedisGraph/pull/1610) Add module-level configuration for query timeouts
    - #[1572](https://github.com/RedisGraph/RedisGraph/pull/1572) Remove query size limitation from parser
    - #[1590](https://github.com/RedisGraph/RedisGraph/pull/1590) Improve reporting of runtime errors
    - #[1596](https://github.com/RedisGraph/RedisGraph/pull/1596) Run bulk loader commands on a non-blocking thread

- Performance Improvements:

    - #[1569](https://github.com/RedisGraph/RedisGraph/pull/1569) Avoid network overhead of emitting arrays with postponed length values

- Bugfixes:

    - #[1573](https://github.com/RedisGraph/RedisGraph/pull/1573) Lock graph on building/deleting full-text indexes, fixing a bug in full-text index replication
    - #[1618](https://github.com/RedisGraph/RedisGraph/pull/1618) Fix error in traversals of 3 or more possible relationship types

- Infrastructure:

    - #[1557](https://github.com/RedisGraph/RedisGraph/pull/1557) Add automated performance benchmarks and regression testing
    - #[1587](https://github.com/RedisGraph/RedisGraph/pull/1587), #[1598](https://github.com/RedisGraph/RedisGraph/pull/1598) Create build artifacts for multiple environments

v2.2.14 (16 February 2021)

This is a maintenance release for version 2.2.

Update urgency: Medium

Headlines:

- This release improves overall stability and provides fixes for issues found after the previous release.

Details:

- Performance improvements:

    - #[1565](https://github.com/RedisGraph/RedisGraph/pull/1565) Reserve a single thread for performing all write queries.
    - #[1548](https://github.com/RedisGraph/RedisGraph/pull/1548), #[1553](https://github.com/RedisGraph/RedisGraph/pull/1553), #[1554](https://github.com/RedisGraph/RedisGraph/pull/1554) only perform SET property updates when property value is changed.
    - #[1543](https://github.com/RedisGraph/RedisGraph/pull/1543) Enable O3 compiler optimizations on libcypher-parser.

- Bugfixes:

    - #[1556](https://github.com/RedisGraph/RedisGraph/pull/1556) Avoid premature freeing of Records in create and update contexts.
    - #[1541](https://github.com/RedisGraph/RedisGraph/pull/1541) Fix excessive memory consumption in OpApply.

v2.2.13 (16 February 2021)

This is a maintenance release for version 2.2.

Update urgency: Medium

Headlines:

- This release improves overall stability and provides fixes for issues found after the previous release.

Details:

- Minor enhancements:

    - #[1490](https://github.com/RedisGraph/RedisGraph/pull/1490) Add support for startNode() and endNode() functions.
    - #[1519](https://github.com/RedisGraph/RedisGraph/pull/1519) Add support for db.indexes() procedure.

- Performance improvements:

    - #[1393](https://github.com/RedisGraph/RedisGraph/pull/1393) Use one unified cache for all RedisGraph worker threads.
    - #[1498](https://github.com/RedisGraph/RedisGraph/pull/1498) Consider both filters and labels in selecting a traversal's starting point.
    - #[1468](https://github.com/RedisGraph/RedisGraph/pull/1468) Unify logic and error handling for aggregate and scalar functions.

- Bugfixes:

    - #[1534](https://github.com/RedisGraph/RedisGraph/pull/1534) Outdated label information used when performing index scans.
    - #[1532](https://github.com/RedisGraph/RedisGraph/pull/1532) Invalid optimization of IN \[array] lookups when values are indexed.
    - #[1524](https://github.com/RedisGraph/RedisGraph/pull/1524) Memory error in accessing complex values after CREATE operations.
    - #[1523](https://github.com/RedisGraph/RedisGraph/pull/1523) Erroneous results when traversing over some transposed matrix sequences.
    - #[1499](https://github.com/RedisGraph/RedisGraph/pull/1499) Erroneous results on variable-length traversals on repeatedly-transposed arrays.
    - #[1504](https://github.com/RedisGraph/RedisGraph/pull/1504) Crash on certain constructions of 0-hop traversals.
    - #[1495](https://github.com/RedisGraph/RedisGraph/pull/1495) Disallow access of properties that have not yet been created.
    - #[1503](https://github.com/RedisGraph/RedisGraph/pull/1503) Only allow literal values as parameters.
    - #[1496](https://github.com/RedisGraph/RedisGraph/pull/1496) Disallow assignment of complex data types to property values in MERGE contexts.
    - #[1494](https://github.com/RedisGraph/RedisGraph/pull/1494) Disallow assignment of values to properties on deleted entities.

- Build:

    - #[1524](https://github.com/RedisGraph/RedisGraph/pull/1524) Update test suite to run under Python 3.

v2.2.11 (20 December 2020)

This is a maintenance release for version 2.2.

Headlines:

This release introduces support for runtime configuration of the maximum number of results to be returned.

Details:

- Features
    - #[1480](https://github.com/RedisGraph/RedisGraph/pull/1480) Introduce GRAPH.CONFIG SET/GET to allow result-set size to be configured at runtime.

v2.2.10 (20 December 2020)

This is a maintenance release for version 2.2.

Headlines:

This release improves overall stability and fixes an issue with backwards compatibility logic for indexing.

Details:

- Bugfixes:
    - #[1475](https://github.com/RedisGraph/RedisGraph/pull/1475) Fix erroneous property update when using `SET` with an unindexed property followed by an indexed one.
    - #[1473](https://github.com/RedisGraph/RedisGraph/pull/1473) Fix backwards compatibility issue in rebuilding and dropping exact-match and full-text indexes.

v2.2.9 (4 December 2020)

This is a maintenance release for version 2.2.

Headlines:

This release improves overall stability and provides fixes for issues found after the previous release.

Details:

- Performance improvements:
    - #[1426](https://github.com/RedisGraph/RedisGraph/pull/1426) Improve load times of adjacency matrices that always have different source and destination nodes.
- Minor enhancements:
    - #[1463](https://github.com/RedisGraph/RedisGraph/pull/1463) Remove all assertions from production builds.
    - #[1442](https://github.com/RedisGraph/RedisGraph/pull/1442) NULL property values should be ignored in `CREATE` clauses and trigger errors in MERGE clauses.
    - #[1429](https://github.com/RedisGraph/RedisGraph/pull/1429) Improve error handling of a number of invalid query constructions.
    - #[1431](https://github.com/RedisGraph/RedisGraph/pull/1431) Traversal patterns are only allowed in `MATCH`, `MERGE`, `CREATE`, and `WHERE` contexts.
- Bugfixes:
    - #[1429](https://github.com/RedisGraph/RedisGraph/pull/1429) Fix potential misapplications of `WHERE` filters.
    - #[1460](https://github.com/RedisGraph/RedisGraph/pull/1460) `RETURN` clauses can only be followed by `UNION` clauses.
    - #[1467](https://github.com/RedisGraph/RedisGraph/pull/1467) Disallow assignment of complex data types to property values.
    - #[1437](https://github.com/RedisGraph/RedisGraph/pull/1437) Failed property updates on `MERGE` should be handled gracefully.
    - #[1446](https://github.com/RedisGraph/RedisGraph/pull/1446) Fix errors in Cartesian Product filter placement.

v2.2 GA (November 2020)

This is the General Availability Release of RedisGraph 2.2 (v2.2.8)!

Headlines:

- Enhanced support for scaling reads
- `OPTIONAL MATCH` (Left outer join)
- Query cache: Improve performance by caching the query execution plan
- Tooling to increase developer experience

Details:

- Support for scaling reads
    - #[1054](https://github.com/RedisGraph/RedisGraph/pull/1054)
 Drastic reduction of memory consumption during replication (and [Active-Passive]()). Break down a large graph into several portions, each accommodating a virtual key and distribute those for reconstruction at the replica end, by doing so we reduce memory consumption on the replica's end.

- `OPTIONAL MATCH` support
    Unlike MATCH, which requires for a pattern to exist, `OPTIONAL MATCH` continues processing when the optional pattern doesn't exist. We can easily compare `OPTIONAL MATCH` in Cypher to an outer join in SQL. It works just like a regular `MATCH` with the difference that if no matches are found, `OPTIONAL MATCH` will use a null for missing parts of the pattern.

    - Query cache: Improve performance by caching the query execution plan

        When executing parameterised queries, RedisGraph will cache the execution plan for increased performance. By caching query's execution-plan, RedisGraph skips the parsing and execution-plan construction phase.
        Cache size can be configured at module load time. The default value is 25.

- Tooling to increase developer experience

    Introduction of `GRAPH.SLOWLOG` command which returns the longest running queries.
    In addition #[1274](https://github.com/RedisGraph/RedisGraph/pull/1274)
 introduces query timeouts with an optional query flag.

- Smaller features and enhancements:
    - #[1225](https://github.com/RedisGraph/RedisGraph/pull/1225)
 Only update index on change of relevant Node properties.
    - #[1229](https://github.com/RedisGraph/RedisGraph/pull/1229)
 RediSearch 1.8.2. (Dependency update)
    - #[1266](https://github.com/RedisGraph/RedisGraph/pull/1266)
, #[1277](https://github.com/RedisGraph/RedisGraph/pull/1277)
 Add support for `any()` and `all()` functions in list comprehension.
    - #[877](https://github.com/RedisGraph/RedisGraph/pull/877)
 Transpose matrices: maintain transpose relationship matrices such that we won't have to compute the transpose of a matrix at run-time. This feature is on by default but can be configured to reduce memory consumption.

- Small updates compared to RC7
    - Minor enhancements:
        - #[1365](https://github.com/RedisGraph/RedisGraph/pull/1365)
 Support array properties in bulk loader.
        - #[1377](https://github.com/RedisGraph/RedisGraph/pull/1377)
 Adding a new procedure `dbms.procedures` that returns all the procedures in the system.
        - #[1389](https://github.com/RedisGraph/RedisGraph/pull/1389)
 Allow property accesses on non-identifier entity references.
    - Bug fixes:
        - #[1406](https://github.com/RedisGraph/RedisGraph/pull/1406)
 Query validation should not check if procedure outputs have been defined.
        - #[1382](https://github.com/RedisGraph/RedisGraph/pull/1382)
 Add graph version to graph context object, response with an error when client graph version mismatch.
        - #[1361](https://github.com/RedisGraph/RedisGraph/pull/1361)
 Don't migrate `WITH` filters into Merge and Apply operation scope.

Notes:
This is the GA version of 2.2. The version inside Redis will be 20208 or 2.2.8 in semantic versioning. Since the version of a module in Redis is numeric, we could not add a GA flag.


RedisGraph 2.4 release notes

Summary: Added Map and Geospatial Point data types.

Requirements

RedisGraph v2.4.14 requires:

- Minimum Redis compatibility version (database): 6.0.0
- Minimum Redis Enterprise Software version (cluster): 6.0.8

v2.4.14 (May 2022)

This is a maintenance release for RedisGraph 2.4.

Update urgency: `LOW`: No need to upgrade unless there are new features you want to use.

Details:

- Bug fixes:

    - [#2072](https://github.com/RedisGraph/RedisGraph/issues/2072), [#2081](https://github.com/RedisGraph/RedisGraph/pull/2081) CRLF sequences embedded in strings no longer trigger a protocol error when being emitted

- Improvements:

    - [#2102](https://github.com/RedisGraph/RedisGraph/pull/2102) New load-time configuration option `NODE_CREATION_BUFFER` - see [documentation](https://github.com/RedisGraph/RedisGraph/blob/master/docs/docs/configuration.md#node_creation_buffer) (MOD-2348)

For Redis Enterprise users who want to upgrade to this patch, this version requires being on version 6.2.8 or later.

v2.4.13 (December 2021)

This is a maintenance release for RedisGraph 2.4.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Performance improvements
    - [#2040](https://github.com/RedisGraph/RedisGraph/pull/2040) Use optimal order of traversals

- Bug fixes:
    - [#2046](https://github.com/RedisGraph/RedisGraph/pull/2046) Avoid serialization of duplicate graph keys (high urgency)
    - [#2033](https://github.com/RedisGraph/RedisGraph/pull/2033) Update RediSearch to 2.0.13

v2.4.12 (October 2021)

This is a maintenance release for RedisGraph 2.4.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Bug fixes:
    - [#1981](https://github.com/RedisGraph/RedisGraph/pull/1981) Crash in index scan

v2.4.11 (October 2021)

This is a maintenance release for RedisGraph 2.4.

Update urgency: `MODERATE` : Program an upgrade of the server, but it's not urgent.

Details:
- Bug fixes:
    - #[1931](https://github.com/RedisGraph/RedisGraph/issues/1931) Fix race condition on calling [`BGSAVE`]() while flushing matrices
    - #[1898](https://github.com/RedisGraph/RedisGraph/issues/1898) Error when setting a property to an array containing an invalid type
    - #[1897](https://github.com/RedisGraph/RedisGraph/issues/1897) Aliases in `WITH...ORDER BY` must be valid references%

v2.4.10 (September 2021)

This is a maintenance release for RedisGraph 2.4

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:
- Critical bug fixes:
    - #[1911](https://github.com/RedisGraph/RedisGraph/issues/1911) When a query timeout is set and the graph contained indexes, a crash could occur while releasing indexes

- Bug fixes:
    - #[1913](https://github.com/RedisGraph/RedisGraph/issues/1913) Update thread-local AST for every cloned operation
    - #[1915](https://github.com/RedisGraph/RedisGraph/issues/1915) Validate function references in parameters%

v2.4.7 (July 2021)

This is a maintenance release for RedisGraph 2.4

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:
- Bug fixes:
    - #[1746](https://github.com/redisgraph/redisgraph/issues/1746) Avoid invalid memory access after reallocating labels array
    - #[1748](https://github.com/redisgraph/redisgraph/issues/1748) Only allocate space for deleted nodes and edges
    - #[1749](https://github.com/redisgraph/redisgraph/issues/1749), #[1730](https://github.com/redisgraph/redisgraph/issues/1730) Support updating properties with map referenced by parameter or variable
    - #[1754](https://github.com/redisgraph/redisgraph/issues/1754) Map should return volatile data
    - #[1773](https://github.com/redisgraph/redisgraph/issues/1773) Matrix resize doesn't set both rows and columns atomically
    - #[1799](https://github.com/redisgraph/redisgraph/issues/1799) Always instantiate new persistent matrices as sparse%

v2.4.6 (June 2021)

This is a maintenance release for RedisGraph 2.4

Update urgency: Medium

Details:

- Performance improvements:
    - #[1702](https://github.com/redisgraph/redisgraph/issues/1702) Optimize matrix synchronization in GRAPH.BULK commands
    - #[1716](https://github.com/redisgraph/redisgraph/issues/1716) Reduce lock calls in retrieving matrices for reading
    - #[1741](https://github.com/redisgraph/redisgraph/issues/1741) Improve edge extraction
    - #[1388](https://github.com/redisgraph/redisgraph/issues/1388) Node creation buffer
    - #[1724](https://github.com/redisgraph/redisgraph/issues/1724) Update RediSearch 2.0
    - #[1731](https://github.com/redisgraph/redisgraph/issues/1731) Release lock after MergeCreate builds entities
    - #[1734](https://github.com/redisgraph/redisgraph/issues/1734) Added multi edge flag

- Bug fixes:
    - #[1726](https://github.com/redisgraph/redisgraph/issues/1726) JsonEncoder: invalid cast
    - #[1709](https://github.com/redisgraph/redisgraph/issues/1709) #1712 Fix potential deadlock in BGSAVE
    - #[1703](https://github.com/redisgraph/redisgraph/issues/1703) Uniquing logic in UNION subqueries
    - #[1720](https://github.com/redisgraph/redisgraph/issues/1720) Propagate configuration updates to replicas
    - #[1714](https://github.com/redisgraph/redisgraph/issues/1714) Don't build scan operations for bound variables
    - #[1708](https://github.com/redisgraph/redisgraph/issues/1708) Regression in GRAPH.CONFIG GET *
    - #[1715](https://github.com/redisgraph/redisgraph/issues/1715) Validate function private data before freeing it

- Miscellaneous:

    - #[1691](https://github.com/redisgraph/redisgraph/issues/1691) Reword error message on setting property value to invalid type

v2.4.4 (15 May 2021)

This is a maintenance release for RedisGraph 2.4.

Update urgency: Medium

Details:

- Minor Enhancements:
    - #[1666](https://github.com/redisgraph/redisgraph/issues/1666) Add configuration parameter to limit the memory usage of queries
    - #[1639](https://github.com/redisgraph/redisgraph/issues/1639) Add functionality to SET all properties on an entity to a map

- Bug fixes:
    - #[1678](https://github.com/redisgraph/redisgraph/issues/1678) Crash on multiple procedure calls in a single query

v2.4.3 (8 May 2021)

This is a maintenance release for RedisGraph 2.4.

Update urgency: Medium

Details:

- Features:
    - #[1657](https://github.com/redisgraph/redisgraph/issues/1657) Support filtering on variable-length edges in traversals
    - #[1514](https://github.com/redisgraph/redisgraph/issues/1514) Add support for shortestPath in MATCH clauses
    - #[1664](https://github.com/redisgraph/redisgraph/issues/1664) Add support for limiting max queued queries
    - #[1653](https://github.com/redisgraph/redisgraph/issues/1653), #[1655](https://github.com/redisgraph/redisgraph/issues/1655) Add support for square root (sqrt) function

- Performance improvements:
    - #[1641](https://github.com/redisgraph/redisgraph/issues/1641) Use indexes when filters can only be resolved at runtime
    - #[1668](https://github.com/redisgraph/redisgraph/issues/1668) Apply path filters after all other filters

- Bug fixes:
    - #[1650](https://github.com/redisgraph/redisgraph/issues/1650) Fix memory leak on allocated keys in OpAggregate
    - #[1671](https://github.com/redisgraph/redisgraph/issues/1671) Disallow nested aggregates in map values, circumventing a bug that introduced invalid group keys
    - #[1644](https://github.com/redisgraph/redisgraph/issues/1644) Fix bug in which values for unknown schema types are cached
    - #[1656](https://github.com/redisgraph/redisgraph/issues/1656) Fix potential crash when releasing thread pools on server shutdown

v2.4 GA (March 2021)

Headlines:

- This release introduces the Map and Geospatial Point data types.

Details:

- Features:
  - #[1514](https://github.com/redisgraph/redisgraph/issues/1514) Add support for Map data type.
  - #[1516](https://github.com/redisgraph/redisgraph/issues/1516) Add support for Geospatial Point data type.
  - #[1562](https://github.com/redisgraph/redisgraph/issues/1562) Add `toJSON` function.
  - #[1607](https://github.com/redisgraph/redisgraph/issues/1607) Querying full-text indexes can yield the `score` of each result.
  - #[1610](https://github.com/redisgraph/redisgraph/issues/1610) Expose runtime configuration for read query timeouts.

- Performance improvements:
  - #[1596](https://github.com/redisgraph/redisgraph/issues/1596) [Redisgraph-bulk-loader](https://github.com/RedisGraph/redisgraph-bulk-loader) no longer blocks the server.

- Minor Enhancements
  - #[1590](https://github.com/redisgraph/redisgraph/issues/1590) Improve handling of runtime errors.
  - #[1580](https://github.com/redisgraph/redisgraph/issues/1580) Enable assertions in debug mode.

- Bugfixes (compared to RC1)
  - #[1618](https://github.com/redisgraph/redisgraph/issues/1618) Fix relationship types being omitted in traversals of 3 or more types.

This is the first GA version of 2.4. The version inside Redis will be 2.4.2 in semantic versioning. Since the version of a module in Redis is numeric, we could not add an GA flag.


RedisGraph 2.8 release notes

Summary: Introduces multi-labeled nodes, indexes over relationship properties, and additional expressivity (Cypher construct, functions, and operators). Major performance enhancements. Many bug fixes.

Requirements

RedisGraph v2.8.26 requires:

- Minimum Redis compatibility version (database): 6.2.0
- Minimum Redis Enterprise Software version (cluster): 6.2.8

v2.8.26 (March 2023)

This is a maintenance release for RedisGraph 2.8.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Bug fixes:

  - [#2880](https://github.com/RedisGraph/RedisGraph/issues/2880) Potential crash when using WITH * expressions
  - [#2917](https://github.com/RedisGraph/RedisGraph/issues/2917) Potential crash when using CASE expressions (MOD-4873)
  - [#2836](https://github.com/RedisGraph/RedisGraph/issues/2836) Potential crash on *0 variable-length path (MOD-4817)
  - [#2916](https://github.com/RedisGraph/RedisGraph/issues/2916) Potential crash when executing concurrent queries that utilize full-text indices (MOD-4818)

v2.8.25 (February 2023)

This is a maintenance release for RedisGraph 2.8.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

- Bug fixes:

  - [#2890](https://github.com/RedisGraph/RedisGraph/issues/2890) Potential wrong results on variable-length path

v2.8.24 (February 2023)

This is a maintenance release for RedisGraph 2.8.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Bug fixes:

  - [#2777](https://github.com/RedisGraph/RedisGraph/issues/2777), [#2841](https://github.com/RedisGraph/RedisGraph/issues/2841) Potential crash when sending queries from multiple connections and timeout is not 0
  - [#2844](https://github.com/RedisGraph/RedisGraph/issues/2844) Potential partial results when same parametrized query is running from multiple connections
  - [#2739](https://github.com/RedisGraph/RedisGraph/issues/2739), [#2774](https://github.com/RedisGraph/RedisGraph/issues/2774) Paths with exact variable length >1 are not matched

- Improvements:

  - [#2758](https://github.com/RedisGraph/RedisGraph/pull/2758) Improved edge deletion performance

v2.8.21 (January 2023)

This is a maintenance release for RedisGraph 2.8.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Bug fixes:

    - [#2754](https://github.com/RedisGraph/RedisGraph/pull/2754) Partial sync may hang (MOD-4594)
    - [#2695](https://github.com/RedisGraph/RedisGraph/pull/2695) Potential crash on certain write queries (MOD-4286, MOD-4545)
    - [#2637](https://github.com/RedisGraph/RedisGraph/issues/2637), [#2460](https://github.com/RedisGraph/RedisGraph/issues/2460), [#2680](https://github.com/RedisGraph/RedisGraph/issues/2680) Crash on invalid queries
    - [#2484](https://github.com/RedisGraph/RedisGraph/issues/2484) Indexes can be created on invalid property names
    - [#2672](https://github.com/RedisGraph/RedisGraph/issues/2672) Wrong matching result on multiple labels
    - [#2643](https://github.com/RedisGraph/RedisGraph/issues/2643) Duplicate reports when matching relationship type `:R|R`
    - [#2687](https://github.com/RedisGraph/RedisGraph/issues/2687), [#2414](https://github.com/RedisGraph/RedisGraph/issues/2414) Error when `UNWIND`ing relationships
    - [#2635](https://github.com/RedisGraph/RedisGraph/issues/2635) Cannot `UNWIND` an expression that is not a list
    - [#2636](https://github.com/RedisGraph/RedisGraph/issues/2636) `MERGE` ... `ON` ... - cannot remove a property by setting it to null

- Improvements:

    - [#2790](https://github.com/RedisGraph/RedisGraph/pull/2790) Improved performance by disabling SuiteSparse:GraphBLAS' global free pool
    - [#2757](https://github.com/RedisGraph/RedisGraph/pull/2757) Improved performance of `indegree` and `outdegree`
    - [#2740](https://github.com/RedisGraph/RedisGraph/issues/2740) Don’t show partial results for timed out `GRAPH.PROFILE`

v2.8.20 (September 2022)

This is a maintenance release for RedisGraph 2.8.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

- Bug fixes:

    - [#2591](https://github.com/RedisGraph/RedisGraph/issues/2591) Potential crash trying to utilize a nonexistent index
    - [#2558](https://github.com/RedisGraph/RedisGraph/issues/2558) Multi-relationship properties created before index creation are not indexed
    - [#2571](https://github.com/RedisGraph/RedisGraph/issues/2571) `min` and `max` return wrong results when the argument is an array
    - [#2587](https://github.com/RedisGraph/RedisGraph/issues/2587) Some queries generate a "forced unlocking commit flow" warning

- Improvements:

    - [#2533](https://github.com/RedisGraph/RedisGraph/issues/2533) Graph slow log can be reset with `GRAPH.SLOWLOG g RESET`

v2.8.19 (August 2022)

This is a maintenance release for RedisGraph 2.8.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

- Bug fixes:

    - [#2517](https://github.com/RedisGraph/RedisGraph/issues/2517) Crash on invalid `REDUCE` queries
    - [#2525](https://github.com/RedisGraph/RedisGraph/issues/2525) `toJSON` - node labels are not separated with a comma (`,`)
    - [#2467](https://github.com/RedisGraph/RedisGraph/issues/2467) Possibly wrong results when using a variable named `anon_N`
    - [#2522](https://github.com/RedisGraph/RedisGraph/pull/2522) Deleting an edge index leaves traces
    - [#2477](https://github.com/RedisGraph/RedisGraph/issues/2477) Cannot extract the latitude or the longitude of a point

- Improvements:

    - [#2519](https://github.com/RedisGraph/RedisGraph/pull/2519) When a query is cached and then a relevant index is created, recalculate the execution plan

v2.8.17 (July 2022)

This is a maintenance release for RedisGraph 2.8.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Bug fixes:

    - [#2499](https://github.com/RedisGraph/RedisGraph/pull/2499) Potential crash with concurrent connections due to missing lock - additional fixes
    - [#2424](https://github.com/RedisGraph/RedisGraph/issues/2424) Potential crash when using `ORDER BY`
    - [#2491](https://github.com/RedisGraph/RedisGraph/issues/2491) Whitespaces between `MATCH` terms can render the query invalid

v2.8.16 (July 2022)

This is a maintenance release for RedisGraph 2.8.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Bug fixes:

    - [#2478](https://github.com/RedisGraph/RedisGraph/pull/2478) Potential crash with concurrent connections due to missing lock
    - [#2370](https://github.com/RedisGraph/RedisGraph/issues/2370) Potential crash / wrong results / warning messages when using edge indexes
    - [#2473](https://github.com/RedisGraph/RedisGraph/issues/2473) Crash on invalid `distance()` query with index

v2.8.15 (June 2022)

This is a maintenance release for RedisGraph 2.8.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Bug fixes:

    - [#2241](https://github.com/RedisGraph/RedisGraph/issues/2241) Possible crash on queries with `MERGE` operation in a Cartesian product (MOD-3500)
    - [#2394](https://github.com/RedisGraph/RedisGraph/issues/2394) Possible crash when freeing an index immediately after its creation

v2.8.14 (June 2022)

This is a maintenance release for RedisGraph 2.8.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Features:

    - [#2403](https://github.com/RedisGraph/RedisGraph/pull/2403) Introduce `toFloat` function
    - [#2365](https://github.com/RedisGraph/RedisGraph/issues/2365) Commands that don't execute on the main thread now also appear in [SLOWLOG]()

- Bug fixes:

    - [#2381](https://github.com/RedisGraph/RedisGraph/pull/2381) Rare data corruption on data encoding
    - [#2393](https://github.com/RedisGraph/RedisGraph/issues/2393), [#2395](https://github.com/RedisGraph/RedisGraph/issues/2395) Crash when searching an index for a runtime-determined value
    - [#2377](https://github.com/RedisGraph/RedisGraph/issues/2377) Crash on `INT_MIN % -1`
    - [#2390](https://github.com/RedisGraph/RedisGraph/issues/2390) Crash on distance filter
    - [#2407](https://github.com/RedisGraph/RedisGraph/issues/2407) Crash on double to string
    - [#2422](https://github.com/RedisGraph/RedisGraph/pull/2422) `toJSON` returned floating points cropped to 6 decimals

New RDB version (v12). RDB files created with v2.8.14 or later are not backward compatible.

v2.8.13 (May 2022)

This is a maintenance release for RedisGraph 2.8.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Bug fixes:

    - [#2351](https://github.com/RedisGraph/RedisGraph/pull/2351) Potential memory leak on query timeout
    - [#2348](https://github.com/RedisGraph/RedisGraph/issues/2348) Crash when converting certain Cypher queries to RediSearch queries
    - [#2331](https://github.com/RedisGraph/RedisGraph/pull/2331) Two memory leaks (one on failed RDB loading, one on certain invalid queries)
    - [#2328](https://github.com/RedisGraph/RedisGraph/pull/2328), [#2306](https://github.com/RedisGraph/RedisGraph/issues/2306), [#2307](https://github.com/RedisGraph/RedisGraph/issues/2307), [#2326](https://github.com/RedisGraph/RedisGraph/issues/2326) Disallow redeclaration of variables; fixed false redeclaration errors
    - [#2363](https://github.com/RedisGraph/RedisGraph/pull/2363) Nodes were sometimes created with more labels than those specified

v2.8.12 (May 2022)

This is a maintenance release for RedisGraph 2.8.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Bug fixes:

    - [#2278](https://github.com/RedisGraph/RedisGraph/issues/2278), [#2301](https://github.com/RedisGraph/RedisGraph/pull/2301) Potential crash on bulk update
    - [#2262](https://github.com/RedisGraph/RedisGraph/issues/2262), [#2271](https://github.com/RedisGraph/RedisGraph/issues/2271), [#2272](https://github.com/RedisGraph/RedisGraph/issues/2272), [#2273](https://github.com/RedisGraph/RedisGraph/issues/2273), [#2282](https://github.com/RedisGraph/RedisGraph/issues/2282), [#2288](https://github.com/RedisGraph/RedisGraph/issues/2288), [#2299](https://github.com/RedisGraph/RedisGraph/issues/2299), [#2312](https://github.com/RedisGraph/RedisGraph/issues/2312), [#2321](https://github.com/RedisGraph/RedisGraph/issues/2321), [#2325](https://github.com/RedisGraph/RedisGraph/issues/2325), [#2323](https://github.com/RedisGraph/RedisGraph/issues/2323) Potential crash on certain queries
    - [#1441](https://github.com/RedisGraph/RedisGraph/issues/1441) Query returns wrong result: projection before Cartesian product causes only one result to be returned
    - [#2298](https://github.com/RedisGraph/RedisGraph/issues/2298) Query returns wrong result: wrong value when fetching a string property from a map
    - [#2318](https://github.com/RedisGraph/RedisGraph/pull/2318) Memory leak

Duplicate column names in a query are no longer valid. For example, the query `GRAPH.QUERY g "MATCH (e) RETURN e, e"` is not valid. If you need to return the same column twice, you can rewrite the query as `GRAPH.QUERY g "MATCH (e) RETURN e, e as e2"`.

v2.8.11 (March 2022)

This is a maintenance release for RedisGraph 2.8.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Bug fixes:

    - [#2259](https://github.com/RedisGraph/RedisGraph/issues/2259), [#2258](https://github.com/RedisGraph/RedisGraph/pull/2258) Fix memory leak and potential crash on [RDB]() saving

v2.8.10 (March 2022)

This is a maintenance release for RedisGraph 2.8.

Update urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!

Details:

- Features:

    - [#2245](https://github.com/RedisGraph/RedisGraph/pull/2245) Support graphs [eviction]()

- Bug fixes:

    - [#1493](https://github.com/RedisGraph/RedisGraph/issues/1493), [#2240](https://github.com/RedisGraph/RedisGraph/pull/2240) Fixed crash on certain queries
    - [#2229](https://github.com/RedisGraph/RedisGraph/issues/2229), [#2222](https://github.com/RedisGraph/RedisGraph/pull/2222) Fixed crash on certain queries
    - [#2209](https://github.com/RedisGraph/RedisGraph/issues/2209), [#2228](https://github.com/RedisGraph/RedisGraph/pull/2228) Fixed crash on certain invalid `DELETE` queries
    - [#2237](https://github.com/RedisGraph/RedisGraph/issues/2237), [#2242](https://github.com/RedisGraph/RedisGraph/pull/2242) Fixed crash on certain `PROFILE` queries
    - [#2230](https://github.com/RedisGraph/RedisGraph/issues/2230), [#2232](https://github.com/RedisGraph/RedisGraph/pull/2232) Fixed wrong number of reported deleted relationships on certain queries
    - [#2233](https://github.com/RedisGraph/RedisGraph/pull/2233) Certain valid queries were reported invalid
    - [#2246](https://github.com/RedisGraph/RedisGraph/issues/2246) Fixed memory leaks

- Improvements:

    - [#2235](https://github.com/RedisGraph/RedisGraph/pull/2235) Improved [RDB]() loading performance

v2.8.9 (March 2022)

This is a maintenance release for RedisGraph 2.8.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

- Features:

    - [#2181](https://github.com/RedisGraph/RedisGraph/pull/2181), [#2182](https://github.com/RedisGraph/RedisGraph/pull/2182) Full support for ARM builds

- Bug fixes:

    - [#2167](https://github.com/RedisGraph/RedisGraph/pull/2167) Fixed a potential crash: filter placement in `OPTIONAL` subtrees
    - [#2176](https://github.com/RedisGraph/RedisGraph/pull/2176) Fixed a potential crash: invalid memory access in nested `DISTINCT` functions
    - [#2217](https://github.com/RedisGraph/RedisGraph/pull/2217) Fixed a potential crash: memory access after free on `FLUSHALL`
    - [#2207](https://github.com/RedisGraph/RedisGraph/pull/2207) Fixed memory leak when `MAX_QUEUED_QUERIES` is used
    - [#2220](https://github.com/RedisGraph/RedisGraph/pull/2220) `WITH * WHERE` - the `WHERE` filters were ignored
    - [#2151](https://github.com/RedisGraph/RedisGraph/pull/2151) Return correct results for aggregations with no inputs
    - [#2163](https://github.com/RedisGraph/RedisGraph/pull/2163) Emit error correctly on multi-query inputs

- Improvements:

    - [#2173](https://github.com/RedisGraph/RedisGraph/pull/2173) Improve performance of breadth-first search

v2.8 GA (v2.8.8) (February 2022)

This is the General Availability release of RedisGraph 2.8.

Highlights

RedisGraph 2.8 introduces multi-labeled nodes, indexes over relationship properties, additional expressivity (construct, functions, and operators), major performance enhancements, and many bug fixes.

#### What's new in 2.8

- Multi-labeled nodes

The `labels` function's signature has changed. The function now returns a list of labels instead of a single label.

If you are using this function and upgrading to RedisGraph 2.8, a simple fix is to replace any call to `labels(x)` with `labels(x)[0]`. This returns the first label associated with node `x`. For uni-labeled nodes, the result in RedisGraph 2.8 is similar to the results of `labels(x)` in RedisGraph 2.4.

- Indexes over relationship properties
- Enhanced full-text search
- Delta matrices: node and relationships additions and deletions are much faster, as they are first updated in small delta matrices. The main matrices are then bulk-updated.
- Additional Cypher construct, functions, and operators
- RediSearch 2.2.7
- [SuiteSparse](https://github.com/DrTimothyAldenDavis/GraphBLAS) (GraphBLAS) 6.0.0

Details

- Features (since 2.8-M02):

    - [#2109](https://github.com/RedisGraph/RedisGraph/pull/2109) Introduce `allShortestPaths` BFS function
    - [#2099](https://github.com/RedisGraph/RedisGraph/pull/2099) Introduce `keys` function
    - [#2047](https://github.com/RedisGraph/RedisGraph/pull/2047) Introduce `reduce` function
    - [#2076](https://github.com/RedisGraph/RedisGraph/pull/2076) Introduce XOR operation in filter trees
    - [#2088](https://github.com/RedisGraph/RedisGraph/pull/2088) Introduce pattern comprehensions
    - [#2051](https://github.com/RedisGraph/RedisGraph/pull/2051) Allow copying of entity attribute sets in `SET` clauses
    - [#2067](https://github.com/RedisGraph/RedisGraph/pull/2067) Allow modification of virtual key entity count (`VKEY_MAX_ENTITY_COUNT`) at runtime
    - [#2102](https://github.com/RedisGraph/RedisGraph/pull/2102) New load time configuration option `NODE_CREATION_BUFFER` - see [documentation](https://github.com/RedisGraph/RedisGraph/blob/master/docs/docs/configuration.md#node_creation_buffer) (MOD-2348)
    - [#2049](https://github.com/RedisGraph/RedisGraph/pull/2049) RediSearch supports field definitions

- Performance improvements (since 2.8-M02):

    - [#2097](https://github.com/RedisGraph/RedisGraph/pull/2097) Locks favor writers to prevent write exhaustion
    - [#1945](https://github.com/RedisGraph/RedisGraph/pull/1945) Track node count per label in graph statistics
    - [#1872](https://github.com/RedisGraph/RedisGraph/pull/1872) Delta matrices are always [hypersparse](https://fossies.org/linux/SuiteSparse/GraphBLAS/docs/graphblas_demo.html#40)
    - [#1871](https://github.com/RedisGraph/RedisGraph/pull/1871) Matrix sync policies reduce the number of syncs required
    - [#1869](https://github.com/RedisGraph/RedisGraph/pull/1869) Transposed matrices are always boolean
    - [#2101](https://github.com/RedisGraph/RedisGraph/pull/2101) Entity annotation has been replaced with an AST `toString` function
    - [#1878](https://github.com/RedisGraph/RedisGraph/pull/1878) Slowlog queries no longer create graphs
    - [#2067](https://github.com/RedisGraph/RedisGraph/pull/2067) Index graph entities incrementally on restore
    - Faster AOF recovery (PM-1252)

- Bug fixes (since 2.8-M02):

    - [#2016](https://github.com/RedisGraph/RedisGraph/pull/2016) Implement new BFS algorithm
    - [#2105](https://github.com/RedisGraph/RedisGraph/pull/2105) Creating a node with multiple properties using the same key only accepts the last value
    - [#2055](https://github.com/RedisGraph/RedisGraph/pull/2055) Avoid arithmetic overflow in `avg` function
    - [#2048](https://github.com/RedisGraph/RedisGraph/pull/2048) Modulo by zero emits division by zero error
    - [#2020](https://github.com/RedisGraph/RedisGraph/pull/2020) Fix evaluation of variable-length edges in expression ordering
    - [#2028](https://github.com/RedisGraph/RedisGraph/pull/2028) Fix utilization of record offset in procedure calls, refactor outputs
    - [#2014](https://github.com/RedisGraph/RedisGraph/pull/2014) Update label for every node in the AST
    - [#2002](https://github.com/RedisGraph/RedisGraph/pull/2002) Fix crash in index utilization using wrong query_graph
    - [#1976](https://github.com/RedisGraph/RedisGraph/pull/1976) Use operand matrix when available
    - [#1973](https://github.com/RedisGraph/RedisGraph/pull/1973) Emit error on a query that only contains parameters
    - [#1950](https://github.com/RedisGraph/RedisGraph/pull/1950) Print ExecutionPlan in `GRAPH.EXPLAIN` only if no errors are encountered in the construction
    - [#1933](https://github.com/RedisGraph/RedisGraph/pull/1933) Free thread-local data on graph deletion
    - [#1942](https://github.com/RedisGraph/RedisGraph/pull/1942) Fix dimensions of transposed delta matrices
    - [#1940](https://github.com/RedisGraph/RedisGraph/pull/1940) Do not use block client if deny blocking is specified
    - [#1898](https://github.com/RedisGraph/RedisGraph/pull/1898) Error when setting a property to an array containing an invalid type
    - [#1931](https://github.com/RedisGraph/RedisGraph/pull/1931) Sync matrices on parent process before serialization fork
    - [#1897](https://github.com/RedisGraph/RedisGraph/pull/1897) Aliases in `WITH` ... `ORDER BY` must be valid references
    - [#1913](https://github.com/RedisGraph/RedisGraph/pull/1913) Update thread-local AST for every cloned operation
    - [#1915](https://github.com/RedisGraph/RedisGraph/pull/1915) Validate function references in parameters
    - [#1911](https://github.com/RedisGraph/RedisGraph/pull/1911) Refactor `cron` task for managing query timeouts
    - [#1902](https://github.com/RedisGraph/RedisGraph/pull/1902) Fix incorrect behavior on `NULL` values in `CASE`...`WHEN` expressions
    - [#1904](https://github.com/RedisGraph/RedisGraph/pull/1904) Allow reconfiguring query timeout to 0
    - [#1888](https://github.com/RedisGraph/RedisGraph/pull/1888) Synchronize matrices on creation in RDB load
    - [#1892](https://github.com/RedisGraph/RedisGraph/pull/1892) Validate values specified in `SET` clauses
    - [#1889](https://github.com/RedisGraph/RedisGraph/pull/1889) Tuple iterator now updates properly when changing matrix to serialize
    - [#1870](https://github.com/RedisGraph/RedisGraph/pull/1870) Fix crash in `range` function
    - [#2125](https://github.com/RedisGraph/RedisGraph/issues/2125) Fix crash on `UNION` ... `RETURN` * queries (MOD-2524)
    - [#2043](https://github.com/RedisGraph/RedisGraph/pull/2043) Avoid serialization of duplicate graph keys
    - [#2067](https://github.com/RedisGraph/RedisGraph/pull/2067) Numeric indices no longer lose precision on very large values
    - [#2072](https://github.com/RedisGraph/RedisGraph/issues/2072), [#2081](https://github.com/RedisGraph/RedisGraph/pull/2081) CRLF sequences embedded in strings no longer trigger a protocol error when being emitted
    - [#2139](https://github.com/RedisGraph/RedisGraph/pull/2139) Fix crash when trying to retrieve an out-of-bounds item
    - [#2149](https://github.com/RedisGraph/RedisGraph/pull/2149) Fix crash when matching a node engages an index to search for a value that is a RediSearch stop word


RedisJSON release notes

Summary: RedisJSON release notes for version 2.8 and earlier

Summary: RedisJSON 2.8 introduces bug fixes.

RedisJSON 2.8 release notes

Summary: RESP3 support. New commands JSON.MERGE and JSON.MSET.

RedisJSON 2.6 release notes

Summary: Low-level API changes in order to support the multi-value indexing and querying support that comes with RediSearch 2.6. RediSearch 2.6 comes with multi-value indexing and querying of attributes for any attribute type (Text, Tag, Numeric, Geo and Vector) defined by a JSONPath leading to an array or to multiple scalar values.

RedisJSON 2.4 release notes

Summary: Preview of Active-Active support for JSON.

RedisJSON 2.2 release notes

Summary: Index JSON documents. JSONPath support. Commands operate on multiple paths.

RedisJSON 2.0 release notes

Summary: Serialization cache for JSON.GET.

RedisJSON 1.0 release notes

Content


RedisJSON 1.0 release notes

Summary: Serialization cache for JSON.GET.

Requirements

RedisJSON v1.0.8 requires:

- Minimum Redis compatibility version (database): 4.0.0
- Minimum Redis Enterprise Software version (cluster): 5.0.0

v1.0.8 (August 2021)

This is a maintenance release for version 1.0.

Update urgency: `LOW` -  No need to upgrade unless there are new features you want to use.

Details:

- Enhancements:
    - #[257](https://github.com/redisjson/redisjson/issues/257) Support inter shards TLS capability

- Bug fixes:
   - #[282](https://github.com/redisjson/redisjson/issues/282) Change `JSON.DEBUG` first key index to 2

v1.0.7 (December 2020)

This is a maintenance release for version 1.0.

Headlines:

- This release improves overall stability and provides fixes for issues found after the previous release.

Details:

- [#222](https://github.com/RedisJSON/RedisJSON/pull/222) Validate path is not empty.
- [#253](https://github.com/RedisJSON/RedisJSON/pull/253) `NULL` de-reference after error.

v1.0.5 (September 2020)

This is a maintenance release for version 1.0.

Headlines:

- This release improves overall stability and provides fixes for issues found after the previous release.

Details:

- Enhancements:
    - Republish docker image based on Redis 6
- Bugfixes:
    - #[200](https://github.com/RedisJSON/RedisJSON/issues/200) Following a call to JSON.ARRPOP and JSON.STRAPPEND, the LRU cache should be invalidated.

v1.0.4 (February 2019)

This release updates the version to 1.0.4.

v1.0.3 (12 September 2018)

This release disables the cache by default, and allows an explicit `CACHE` `<ON|OFF>` module argument to enable it.

v1.0.2 (10 September 2018)

This release contains some bug fixes over 1.0.2. It also includes some ci changes as well.

v1.0.1 (December 2017)

This version provides a serialization cache for JSON.GET (when used with the
default parameters). The cache policy is LRU (last recently used), and extremely
small items are not cached.

In the future, options may be added to configure the cache, but for the time being
the cache is intended to be small and transparent.


RedisJSON 2.0 release notes

Requirements

RedisJSON v2.0.11 requires:

- Minimum Redis compatibility version (database): 6.0.0
- Minimum Redis Enterprise Software version (cluster): 6.0.0

v2.0.11 (July 2022)

This is a maintenance release for RedisJSON 2.0.
Update urgency: `LOW` - No need to upgrade unless there are new features you want to use.

Details:

- Improvements:

  - Minor documentation changes and internal build improvements

v2.0.9 (June 2022)

This is a maintenance release for RedisJSON 2.0.

Update urgency: `LOW`: No need to upgrade unless there are new features you want to use.

Details:

- Bug fixes:

  - [#721](https://github.com/RedisJSON/RedisJSON/pull/721) Skip String and Boolean scalars in `JSON.CLEAR` (MOD-3136)

- Improvements:

  - [#709](https://github.com/RedisJSON/RedisJSON/pull/709) Allow internal JSON API's `getdouble` to succeed with integer values

v2.0.8 (April 2022)

This is a maintenance release for RedisJSON 2.0.

Update urgency: `LOW` - No need to upgrade unless there are new features you want to use.

Details:

- Bug fixes:

  - [#691](https://github.com/RedisJSON/RedisJSON/pull/691), [#667](https://github.com/RedisJSON/RedisJSON/issues/667) Duplicate results in JSONPath query

v2.0.7 (March 2022)

This is a maintenance release for RedisJSON 2.0.

Update urgency: `LOW` - No need to upgrade unless there are new features you want to use.

Details:

- Improvements:

  - [#632](https://github.com/RedisJSON/RedisJSON/pull/632), [#605](https://github.com/RedisJSON/RedisJSON/pull/605) Support `JSON.CLEAR` for string, bool, and numeric scalars (MOD-2394)
  - [#637](https://github.com/RedisJSON/RedisJSON/pull/637) Add `intershard_tls_pass` support (MOD-2522)
  - [#594](https://github.com/RedisJSON/RedisJSON/pull/594) Support for `MEMORY USAGE` and memory info in `JSON.DEBUG` (MOD- 2079)

- Bug fixes:

  - [#646](https://github.com/RedisJSON/RedisJSON/pull/646), [#644](https://github.com/RedisJSON/RedisJSON/pull/644) Do not fail `JSON.MGET` on wrong/unregistered key type (MOD-2511)
  - [#643](https://github.com/RedisJSON/RedisJSON/pull/643) Null-terminate JSON string in `rdb_save`
  - [#591](https://github.com/RedisJSON/RedisJSON/pull/591) Avoid crash on overflow in `JSON.NUMINCRBY` or `JSON.NUMMULTBY` (MOD-2513)
  - [#593](https://github.com/RedisJSON/RedisJSON/pull/593) Return no updates when performing `JSON.SET` with `NX` to an existing array element (MOD-2512)

v2.0.6 (December 2021)

This is a maintenance release for RedisJSON 2.0.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

This patch neutralizes the increased memory consumption from v1 to v2.

Details:

- Improvements:

  - [#563](https://github.com/RedisJSON/RedisJSON/pull/563) Introduction of [ijson](https://libraries.io/cargo/ijson).

v2.0.5 (December 2021)

This is a maintenance release for RedisJSON 2.0.

Details:

- Bug fixes:
  - #[553](https://github.com/RedisJSON/RedisJSON/pull/553) Return an empty array on a nonexistent path
  - #[548](https://github.com/RedisJSON/RedisJSON/pull/548) Align error handling behavior
  - #[546](https://github.com/RedisJSON/RedisJSON/pull/546) #[545](https://github.com/RedisJSON/RedisJSON/pull/545) Fix key location in `JSON.DEBUG MEMORY`

v2.0.4 (November 2021)

This is the General Availability release of RedisJSON 2.0.

Headlines

RedisJSON is a [high-performance JSON document store](https://redis.com/blog/redisjson-public-preview-performance-benchmarking/) that allows developers to build modern applications. It stores and processes JSON in-memory, supporting millions of operations per second with sub-millisecond response times. The combination of `RediSearch`, native indexing, querying, and full-text search of JSON documents allows developers to create secondary indexes and query data at lightning speed.

#### Indexing JSON documents

Using [RediSearch](https://redisearch.io), it is now possible to [index, query, and search JSON documents](), gaining full-text search capabilities and document retrieving based on their content.

To do so, you must install both modules, `RedisJSON` and `RediSearch`, on the same database.

#### Support of JSON Path

The commands [support JSONPath]() as specified in the [original specifications](https://goessner.net/articles/JsonPath).

The legacy path syntax is still supported.

#### Commands operate on multiple paths

A `JSONPath` query may resolve to several paths. Every command supports multiple paths and applies the operation to all the encountered paths.

Notice that the output of the commands evolved to provide multiple results according to the number of paths impacted.

Details

- Enhancements
  - #[477](https://github.com/RedisJSON/RedisJSON/pull/477) Support of Multipath
  - #[336](https://github.com/RedisJSON/RedisJSON/pull/336) Added generic JSON path implementation
  - #[525](https://github.com/RedisJSON/RedisJSON/pull/525) Error messages prefixed with ERR or WRONGTYPE
  - #[490](https://github.com/RedisJSON/RedisJSON/pull/490) Performance: Discard `to_value` method
  - #[426](https://github.com/RedisJSON/RedisJSON/pull/426) Move from next_string to next_str
  - #[464](https://github.com/RedisJSON/RedisJSON/pull/464) Initial RedisJSON commands.json file
  - #[488](https://github.com/RedisJSON/RedisJSON/pull/488) Docker with RediSearch revisited

- Bug fixes
  - #[515](https://github.com/RedisJSON/RedisJSON/pull/515) JSON.DEL count deleted null value
  - #[499](https://github.com/RedisJSON/RedisJSON/pull/499) Avoid crash in ARRTRIM
  - #[458](https://github.com/RedisJSON/RedisJSON/pull/458) Docker/Debian: moved from Buster to Bullseye
  - #[397](https://github.com/RedisJSON/RedisJSON/pull/397) Support RDB Short Read in RedisJSON (a.k.a diskless-load)
  - #[398](https://github.com/RedisJSON/RedisJSON/pull/398) Avoid path clone when not needed
  - #[416](https://github.com/RedisJSON/RedisJSON/pull/416) Add testGetWithBracketNotation


RedisJSON 2.2 release notes

Requirements

RedisJSON v2.2.0 requires:

- Minimum Redis compatibility version (database): 6.0.0
- Minimum Redis Enterprise Software version (cluster): 6.2.18

v2.2.0 (July 2022)

A preview of RedisJSON 2.2 is available for Free and Fixed subscription plans in Redis Cloud.

Headlines

This release adds support for the JSON data structure as a CRDT (Conflict-free Replicated Data Type) when used with Redis Enterprise [Active-Active databases](active-active/).

Active-Active JSON requires Redis Enterprise Software v6.2.12. Contact your account manager or support to access the preview of RedisJSON 2.2.

Details

- Enhancements:

  - [#758](https://github.com/RedisJSON/RedisJSON/pull/758) Add support for [`COPY`]()


RedisJSON 2.4 release notes

Requirements

RedisJSON v2.4.17 requires:

- Minimum Redis compatibility version (database): 6.0.16
- Minimum Redis Enterprise Software version (cluster): 6.2.18

v2.4.17 (September 2025)

This is a maintenance release for RedisJSON 2.4.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

Bug fixes
- [#1374](https://github.com/redisjson/redisjson/pull/1374) - `JSON.DEL` doesn’t delete all matching object members / array elements (MOD-11032, MOD-11067).

v2.4.12 (April 2025)

This is a maintenance release for RedisJSON 2.4.

Update urgency: `LOW`: No need to upgrade unless there are new features you want to use.

Details:

Improvements:
- [#1335](https://github.com/redisjson/redisjson/pull/1335) Added support for Azure Linux 3 (MOD-9172)

v2.4.11 (January 2025)

This is a maintenance release for RedisJSON 2.4

Update urgency: `LOW`: No need to upgrade unless there are new features you want to use.

Details

- Bug fixes:
  - [#1313](https://github.com/redisjson/redisjson/pull/1313) (Redis Enterprise A-A only) Potential crash on `JSON.DEBUG MEMORY` (MOD-8412)

- Improvements:
  - [#1310](https://github.com/redisjson/redisjson/pull/1310) Added support for Ubuntu 22 and macOS 13 and 14

v2.4.9 (April 2024)

This is a maintenance release for RedisJSON 2.4.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

- Bug fixes:

  - [#1192](https://github.com/RedisJSON/RedisJSON/pull/1192) Crashes with numeric values greater than i64::MAX (MOD-6501, MOD-4551, MOD-4856, MOD-5714)
  - HDT#228 (Redis Enterprise A-A only) Incorrect error when processing escaped characters (MOD-6645)

v2.4.8 (January 2024)

This is a maintenance release for RedisJSON 2.4.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Ubuntu 16.04 and RHEL 7 are no longer supported as of v2.4.8.

Details:

- Improvements:

  - [#1149](https://github.com/RedisJSON/RedisJSON/pull/1149) Added support for CBL-Mariner 2

- Bug fixes:

  - [#1025](https://github.com/RedisJSON/RedisJSON/pull/1025) `JSON.TOGGLE` - missing keyspace notification

v2.4.7 (April 2023)

This is a maintenance release for RedisJSON 2.4.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

- Bug fixes:

  - [#947](https://github.com/RedisJSON/RedisJSON/issues/947) Crash when using array slice operator (`[start:end:step]`) with step `0`

v2.4.6 (March 2023)

This is a maintenance release for RedisJSON 2.4.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

- Bug fixes:

  - [#912](https://github.com/RedisJSON/RedisJSON/pull/912) Fix actual memory usage calculation (MOD-4787)

v2.4.5 (February 2023)

This is a maintenance release for RedisJSON 2.4.

Update urgency: `LOW`: No need to upgrade unless there are new features you want to use.

Details:

- Improvements:

  - Adds support to Redis Enterprise on Ubuntu Linux 20.04 LTS (Focal Fossa)

v2.4.4 (February 2023)

This is a maintenance release for RedisJSON 2.4.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

- Bug fixes:

  - [#919](https://github.com/RedisJSON/RedisJSON/pull/919) Possible failure loading RDB files (MOD-4822)

- Improvements:

  - [#725](https://github.com/RedisJSON/RedisJSON/issues/725) Improve error messages
  - [#918](https://github.com/RedisJSON/RedisJSON/pull/918) Add IPv6 to the capabilities list

v2.4.3 (December 2022)

This is a maintenance release for RedisJSON 2.4.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

- Bug fixes:

  - [#890](https://github.com/RedisJSON/RedisJSON/pull/890) JSONPath ignores any filter condition beyond the second (MOD-4602)

- Improvements:

  - [#892](https://github.com/RedisJSON/RedisJSON/pull/892) Allow `JSON.ARRINDEX` with nonscalar values

v2.4 GA (v2.4.2) (November 2022)

This is the General Availability release of RedisJSON 2.4.

Highlights

RedisJSON 2.4 contains several low-level API changes in order to support the multi-value indexing and querying support that comes with RediSearch 2.6. RediSearch 2.6 comes with multi-value indexing and querying of attributes for any attribute type (Text, Tag, Numeric, Geo and Vector) defined by a JSONPath leading to an array or to multiple scalar values.

What's new in 2.4

- Features:

  - [#848](https://github.com/RedisJSON/RedisJSON/pull/848) Add JSONPath filter the regexp match operator (MOD-4432)
  - [#861](https://github.com/RedisJSON/RedisJSON/pull/861) Support legacy JSONPath with the dollar sign $ (MOD-4436)

- Performance enhancements:

  - [#699](https://github.com/RedisJSON/RedisJSON/pull/699) A new JSONPath library which enhances the performance of parsing any JSONPath expression in RedisJSON.

- Changing behaviour:

  - [#699](https://github.com/RedisJSON/RedisJSON/pull/699) Floating point numbers which become round numbers due to some operation, such as `JSON.NUMINCRBY`, will now return as a floating point with a trailing `.0`, e.g., instead of just `42`, now `42.0` will be returned.

- Bugs fixes (since 2.4-RC1/ v2.4.0):

  - [#850](https://github.com/RedisJSON/RedisJSON/pull/850) Allow repetition of filter relation instead of optional (MOD-4431)


RedisJSON 2.6 release notes

Requirements

RedisJSON v2.6.22 requires:

- Minimum Redis compatibility version (database): 7.2
- Minimum Redis Enterprise Software version (cluster): 7.2.4

v2.6.22 (October 2025)

This is a maintenance release for RedisJSON 2.6.

Update urgency: `LOW`: No need to upgrade unless there are new features you want to use.

Details:

Improvements:

- Added support for Rocky Linux 9 and RHEL9 ARM.

v2.6.21 (September 2025)

This is a maintenance release for RedisJSON 2.6.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

Bug fixes
- [#1374](https://github.com/redisjson/redisjson/pull/1374) - `JSON.DEL` doesn’t delete all matching object members / array elements (MOD-11032, MOD-11067).

v2.6.15 (April 2025)

This is a maintenance release for RedisJSON 2.6.

Update urgency: `LOW`: No need to upgrade unless there are new features you want to use.

Details:

Bug fixes
- [#1329](https://github.com/redisjson/redisjson/pull/1329) Memory usage calculation: some allocations are counted twice (MOD-9169)

Improvements:
- [#1335](https://github.com/redisjson/redisjson/pull/1335) Added support for Azure Linux 3 (MOD-9172)

v2.6.14 (January 2025)

This is a maintenance release for RedisJSON 2.6

Update urgency: `LOW`: No need to upgrade unless there are new features you want to use.

Details:

- Bug fixes:
  - [#1313](https://github.com/redisjson/redisjson/pull/1313) (Redis Enterprise A-A only) Potential crash on `JSON.DEBUG MEMORY` (MOD-8412)

- Improvements:
  - [#1312](https://github.com/redisjson/redisjson/pull/1312) Added support for Ubuntu 22 and macOS 13 and 14

v2.6.12 (September 2024)

This is a maintenance release for RedisJSON 2.6

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

- Bug fixes:

  - [#1225](https://github.com/redisjson/redisjson/pull/1225) Crash on SET commands with recursive overlapping paths (MOD-7279)
  - HDT#261 (Redis Enterprise A-A only) Crash when a JSON contains an EOF character (MOD-7464)

v2.6.10 (April 2024)

This is a maintenance release for RedisJSON 2.6.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

- Bug fixes:

  - [#1192](https://github.com/RedisJSON/RedisJSON/pull/1192) Crashes with numeric values greater than i64::MAX (MOD-6501, MOD-4551, MOD-4856, MOD-5714)
  - HDT#228 (Redis Enterprise A-A only) Incorrect error when processing escaped characters (MOD-6645)

v2.6.9 (January 2024)

This is a maintenance release for RedisJSON 2.6.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

- Improvements:

   - [#1131](https://github.com/RedisJSON/RedisJSON/issues/1131), [#1143](https://github.com/RedisJSON/RedisJSON/pull/1143) **BREAKING** - Revert JSONPath default path value from `$` to `.` under RESP3 (MOD-6156)

- Bug fixes:

  - [#1095](https://github.com/RedisJSON/RedisJSON/pull/1095) Fix for RediSearch deadlock. See RediSearch 2.8.10 release notes (MOD-5895)

v2.6.8 (November 2023)

This is a maintenance release for RedisJSON 2.6.

Update urgency: `LOW`: No need to upgrade unless there are new features you want to use.

Details:

RHEL 7 is no longer supported as of v2.6.8.

This is a version number alignment with RedisJSON for Redis Enterprise (with Active-Active support).

v2.6.7 (October 2023)

This is a maintenance release for RedisJSON 2.6.

Update urgency: `LOW`: No need to upgrade unless there are new features you want to use.

Details:

- Improvements:

  - [#1102](https://github.com/RedisJSON/RedisJSON/pull/1102) Added support for CBL-Mariner 2
  - [#1099](https://github.com/RedisJSON/RedisJSON/pull/1099) Added support for RHEL9 and Rocky Linux 9

v2.6.6 (August 2023)

This is a maintenance release for RedisJSON 2.6.

Update urgency: `LOW`: No need to upgrade unless there are new features you want to use.

Details:

This is just a version number alignment with RedisJSON for Redis Enterprise (with Active-Active support).

v2.6 GA (v2.6.4) (July 2023)

This is the General Availability release of RedisJSON 2.6.

Headlines

RedisJSON 2.6 introduces support for RESP3 and new commands.

What's new in 2.6

- Introduce [`JSON.MERGE`]() in compliance with [RFC 7396](https://datatracker.ietf.org/doc/html/rfc7396), supporting:

  - Creating new attributes on an existing JSON document

  - Updating and replacing values in parent and child attributes

  - Deleting existing attributes (by setting the value to `null`)

  - Array update - replacing an entire array with the new value

- Introduce [`JSON.MSET`](), supporting atomic multiple sets for keys in the same hash slot

- New `FORMAT` argument in `JSON.ARRPOP` and `JSON.GET` to retrieve the results as JSON strings or RESP3 hierarchical structures (RESP3 only)

- `JSON.RESP` is now regarded as deprecated

- Legacy paths (paths that don't start with either `$.` or `$[` or equal to `$`), except those starting with `.`, are now deprecated

- The version inside Redis will be 2.6.4 in semantic versioning. Since the version of a module in Redis is numeric, we could not add a GA flag.

- Minimal Redis version: 7.2


RedisJSON 2.8 release notes

Summary: RedisJSON 2.8 introduces bug fixes.

Requirements

RedisJSON v2.8.16 requires:

- Minimum Redis compatibility version (database): 7.4
- Minimum Redis Enterprise Software version (cluster): 7.8

v2.8.16 (November 2025)

This is a maintenance release for RedisJSON 2.8.

Update urgency: `LOW`: No need to upgrade unless there are new features you want to use.

Details:

Bug fixes:
- [#1446](https://github.com/redisjson/redisjson/pull/1446) Rare race condition in async flush (MOD-12014).

v2.8.15 (October 2025)

This is a maintenance release for RedisJSON 2.8.

Update urgency: `LOW`: No need to upgrade unless there are new features you want to use.

Details:

Improvements:

- Added support for Rocky Linux 9 and RHEL9 ARM.

v2.8.14 (September 2025)

This is a maintenance release for RedisJSON 2.8.

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

Bug fixes
- [#1374](https://github.com/redisjson/redisjson/pull/1374) - `JSON.DEL` doesn’t delete all matching object members / array elements (MOD-11032, MOD-11067).

v2.8.9 (April 2025)

This is a maintenance release for RedisJSON 2.8.

Update urgency: `LOW`: No need to upgrade unless there are new features you want to use.

Details:

Bug fixes
- [#1329](https://github.com/redisjson/redisjson/pull/1329) Memory usage calculation: some allocations are counted twice (MOD-9169)

Improvements:
- [#1335](https://github.com/redisjson/redisjson/pull/1335) Added support for Azure Linux 3 (MOD-9172)

v2.8.8 (January 2025)

This is a maintenance release for RedisJSON 2.8

Update urgency: `LOW`: No need to upgrade unless there are new features you want to use.

Details:

- Bug fixes:
  - [#1313](https://github.com/redisjson/redisjson/pull/1313) (Redis Enterprise A-A only) Potential crash on `JSON.DEBUG MEMORY` (MOD-8412)

- Improvements:
  - [#1262](https://github.com/redisjson/redisjson/pull/1262) Support active memory defragmentation (MOD-7888)
  - [#1308](https://github.com/redisjson/redisjson/pull/1308) Added support for Ubuntu 22 and macOS 13 and 14

v2.8.4 (September 2024)

This is a maintenance release for RedisJSON 2.8

Update urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.

Details:

- Bug fixes:

  - [#1225](https://github.com/redisjson/redisjson/pull/1225) Crash on SET commands with recursive overlapping paths (MOD-7279)
  - HDT#261 (Redis Enterprise A-A only) Crash when a JSON contains an EOF character (MOD-7464)

v2.8 GA (v2.8.3) (July 2024)

This is the General Availability release of RedisJSON 2.8

Headlines:

RedisJSON 2.8 introduces bug fixes.

Details

- Bug fixes

  - [#1212](https://github.com/RedisJSON/RedisJSON/pull/1212) `JSON.MSET`- AOF commands are duplicated multiple times (MOD-7293)

- The version inside Redis will be 2.8.3 in semantic versioning. Since the version of a module in Redis is numeric, we could not add a GA flag.
- Minimal Redis version: 7.4


Redis Stack release notes

Summary: Redis Stack release notes for version 7.2 and later

Summary: Redis Stack 6.2.6 release notes.

Redis Stack 6.2.6 release notes

Summary: Redis Stack 7.2 release notes.

Redis Stack 7.2 release notes

Summary: Redis Stack 7.4 release notes.

Redis Stack 7.4 release notes