Requirements

RedisGraph v2.8.20 requires:

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

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 Potential crash trying to utilize a nonexistent index
    • #2558 Multi-relationship properties created before index creation are not indexed
    • #2571 min and max return wrong results when the argument is an array
    • #2587 Some queries generate a “forced unlocking commit flow” warning
  • Improvements:

    • #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 Crash on invalid REDUCE queries
    • #2525 toJSON - node labels are not separated with a comma (,)
    • #2467 Possibly wrong results when using a variable named anon_N
    • #2522 Deleting an edge index leaves traces
    • #2477 Cannot extract the latitude or the longitude of a point
  • Improvements:

    • #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 Potential crash with concurrent connections due to missing lock - additional fixes
    • #2424 Potential crash when using ORDER BY
    • #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 Potential crash with concurrent connections due to missing lock
    • #2370 Potential crash / wrong results / warning messages when using edge indexes
    • #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 Possible crash on queries with MERGE operation in a Cartesian product (MOD-3500)
    • #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 Introduce toFloat function
    • #2365 Commands that don’t execute on the main thread now also appear in SLOWLOG
  • Bug fixes:

    • #2381 Rare data corruption on data encoding
    • #2393, #2395 Crash when searching an index for a runtime-determined value
    • #2377 Crash on INT_MIN % -1
    • #2390 Crash on distance filter
    • #2407 Crash on double to string
    • #2422 toJSON returned floating points cropped to 6 decimals
Note:
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 Potential memory leak on query timeout
    • #2348 Crash when converting certain Cypher queries to RediSearch queries
    • #2331 Two memory leaks (one on failed RDB loading, one on certain invalid queries)
    • #2328, #2306, #2307, #2326 Disallow redeclaration of variables; fixed false redeclaration errors
    • #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:

Note:
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:

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:

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:

  • Bug fixes:

    • #2167 Fixed a potential crash: filter placement in OPTIONAL subtrees
    • #2176 Fixed a potential crash: invalid memory access in nested DISTINCT functions
    • #2217 Fixed a potential crash: memory access after free on FLUSHALL
    • #2207 Fixed memory leak when MAX_QUEUED_QUERIES is used
    • #2220 WITH * WHERE - the WHERE filters were ignored
    • #2151 Return correct results for aggregations with no inputs
    • #2163 Emit error correctly on multi-query inputs
  • Improvements:

    • #2173 Improve performance of breadth-first search

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

    Note:
    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 (GraphBLAS) 6.0.0

Details

  • Features (since 2.8-M02):

    • #2109 Introduce allShortestPaths BFS function
    • #2099 Introduce keys function
    • #2047 Introduce reduce function
    • #2076 Introduce XOR operation in filter trees
    • #2088 Introduce pattern comprehensions
    • #2051 Allow copying of entity attribute sets in SET clauses
    • #2067 Allow modification of virtual key entity count (VKEY_MAX_ENTITY_COUNT) at runtime
    • #2102 New load time configuration option NODE_CREATION_BUFFER - see documentation (MOD-2348)
    • #2049 RediSearch supports field definitions
  • Performance improvements (since 2.8-M02):

    • #2097 Locks favor writers to prevent write exhaustion
    • #1945 Track node count per label in graph statistics
    • #1872 Delta matrices are always hypersparse
    • #1871 Matrix sync policies reduce the number of syncs required
    • #1869 Transposed matrices are always boolean
    • #2101 Entity annotation has been replaced with an AST toString function
    • #1878 Slowlog queries no longer create graphs
    • #2067 Index graph entities incrementally on restore
    • Faster AOF recovery (PM-1252)
  • Bug fixes (since 2.8-M02):

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

  • Minimum Redis version: 6.2