# RedisGraph 2.8 release notes ## 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](http://github.com/RedisGraph/RedisGraph/issues/2880) Potential crash when using WITH * expressions - [#2917](http://github.com/RedisGraph/RedisGraph/issues/2917) Potential crash when using CASE expressions (MOD-4873) - [#2836](http://github.com/RedisGraph/RedisGraph/issues/2836) Potential crash on *0 variable-length path (MOD-4817) - [#2916](http://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](http://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](http://github.com/RedisGraph/RedisGraph/issues/2777), [#2841](http://github.com/RedisGraph/RedisGraph/issues/2841) Potential crash when sending queries from multiple connections and timeout is not 0 - [#2844](http://github.com/RedisGraph/RedisGraph/issues/2844) Potential partial results when same parametrized query is running from multiple connections - [#2739](http://github.com/RedisGraph/RedisGraph/issues/2739), [#2774](http://github.com/RedisGraph/RedisGraph/issues/2774) Paths with exact variable length >1 are not matched - Improvements: - [#2758](http://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](http://github.com/RedisGraph/RedisGraph/pull/2754) Partial sync may hang (MOD-4594) - [#2695](http://github.com/RedisGraph/RedisGraph/pull/2695) Potential crash on certain write queries (MOD-4286, MOD-4545) - [#2637](http://github.com/RedisGraph/RedisGraph/issues/2637), [#2460](http://github.com/RedisGraph/RedisGraph/issues/2460), [#2680](http://github.com/RedisGraph/RedisGraph/issues/2680) Crash on invalid queries - [#2484](http://github.com/RedisGraph/RedisGraph/issues/2484) Indexes can be created on invalid property names - [#2672](http://github.com/RedisGraph/RedisGraph/issues/2672) Wrong matching result on multiple labels - [#2643](http://github.com/RedisGraph/RedisGraph/issues/2643) Duplicate reports when matching relationship type `:R|R` - [#2687](http://github.com/RedisGraph/RedisGraph/issues/2687), [#2414](http://github.com/RedisGraph/RedisGraph/issues/2414) Error when `UNWIND`ing relationships - [#2635](http://github.com/RedisGraph/RedisGraph/issues/2635) Cannot `UNWIND` an expression that is not a list - [#2636](http://github.com/RedisGraph/RedisGraph/issues/2636) `MERGE` ... `ON` ... - cannot remove a property by setting it to null - Improvements: - [#2790](http://github.com/RedisGraph/RedisGraph/pull/2790) Improved performance by disabling SuiteSparse:GraphBLAS' global free pool - [#2757](http://github.com/RedisGraph/RedisGraph/pull/2757) Improved performance of `indegree` and `outdegree` - [#2740](http://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](http://github.com/RedisGraph/RedisGraph/issues/2591) Potential crash trying to utilize a nonexistent index - [#2558](http://github.com/RedisGraph/RedisGraph/issues/2558) Multi-relationship properties created before index creation are not indexed - [#2571](http://github.com/RedisGraph/RedisGraph/issues/2571) `min` and `max` return wrong results when the argument is an array - [#2587](http://github.com/RedisGraph/RedisGraph/issues/2587) Some queries generate a "forced unlocking commit flow" warning - Improvements: - [#2533](http://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](http://github.com/RedisGraph/RedisGraph/issues/2517) Crash on invalid `REDUCE` queries - [#2525](http://github.com/RedisGraph/RedisGraph/issues/2525) `toJSON` - node labels are not separated with a comma (`,`) - [#2467](http://github.com/RedisGraph/RedisGraph/issues/2467) Possibly wrong results when using a variable named `anon_N` - [#2522](http://github.com/RedisGraph/RedisGraph/pull/2522) Deleting an edge index leaves traces - [#2477](http://github.com/RedisGraph/RedisGraph/issues/2477) Cannot extract the latitude or the longitude of a point - Improvements: - [#2519](http://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](http://github.com/RedisGraph/RedisGraph/pull/2499) Potential crash with concurrent connections due to missing lock - additional fixes - [#2424](http://github.com/RedisGraph/RedisGraph/issues/2424) Potential crash when using `ORDER BY` - [#2491](http://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](http://github.com/RedisGraph/RedisGraph/pull/2478) Potential crash with concurrent connections due to missing lock - [#2370](http://github.com/RedisGraph/RedisGraph/issues/2370) Potential crash / wrong results / warning messages when using edge indexes - [#2473](http://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](http://github.com/RedisGraph/RedisGraph/issues/2241) Possible crash on queries with `MERGE` operation in a Cartesian product (MOD-3500) - [#2394](http://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](http://github.com/RedisGraph/RedisGraph/pull/2403) Introduce `toFloat` function - [#2365](http://github.com/RedisGraph/RedisGraph/issues/2365) Commands that don't execute on the main thread now also appear in [SLOWLOG](http://redis.io/docs/latest/commands/slowlog) - Bug fixes: - [#2381](http://github.com/RedisGraph/RedisGraph/pull/2381) Rare data corruption on data encoding - [#2393](http://github.com/RedisGraph/RedisGraph/issues/2393), [#2395](http://github.com/RedisGraph/RedisGraph/issues/2395) Crash when searching an index for a runtime-determined value - [#2377](http://github.com/RedisGraph/RedisGraph/issues/2377) Crash on `INT_MIN % -1` - [#2390](http://github.com/RedisGraph/RedisGraph/issues/2390) Crash on distance filter - [#2407](http://github.com/RedisGraph/RedisGraph/issues/2407) Crash on double to string - [#2422](http://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](http://github.com/RedisGraph/RedisGraph/pull/2351) Potential memory leak on query timeout - [#2348](http://github.com/RedisGraph/RedisGraph/issues/2348) Crash when converting certain Cypher queries to RediSearch queries - [#2331](http://github.com/RedisGraph/RedisGraph/pull/2331) Two memory leaks (one on failed RDB loading, one on certain invalid queries) - [#2328](http://github.com/RedisGraph/RedisGraph/pull/2328), [#2306](http://github.com/RedisGraph/RedisGraph/issues/2306), [#2307](http://github.com/RedisGraph/RedisGraph/issues/2307), [#2326](http://github.com/RedisGraph/RedisGraph/issues/2326) Disallow redeclaration of variables; fixed false redeclaration errors - [#2363](http://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](http://github.com/RedisGraph/RedisGraph/issues/2278), [#2301](http://github.com/RedisGraph/RedisGraph/pull/2301) Potential crash on bulk update - [#2262](http://github.com/RedisGraph/RedisGraph/issues/2262), [#2271](http://github.com/RedisGraph/RedisGraph/issues/2271), [#2272](http://github.com/RedisGraph/RedisGraph/issues/2272), [#2273](http://github.com/RedisGraph/RedisGraph/issues/2273), [#2282](http://github.com/RedisGraph/RedisGraph/issues/2282), [#2288](http://github.com/RedisGraph/RedisGraph/issues/2288), [#2299](http://github.com/RedisGraph/RedisGraph/issues/2299), [#2312](http://github.com/RedisGraph/RedisGraph/issues/2312), [#2321](http://github.com/RedisGraph/RedisGraph/issues/2321), [#2325](http://github.com/RedisGraph/RedisGraph/issues/2325), [#2323](http://github.com/RedisGraph/RedisGraph/issues/2323) Potential crash on certain queries - [#1441](http://github.com/RedisGraph/RedisGraph/issues/1441) Query returns wrong result: projection before Cartesian product causes only one result to be returned - [#2298](http://github.com/RedisGraph/RedisGraph/issues/2298) Query returns wrong result: wrong value when fetching a string property from a map - [#2318](http://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](http://github.com/RedisGraph/RedisGraph/issues/2259), [#2258](http://github.com/RedisGraph/RedisGraph/pull/2258) Fix memory leak and potential crash on [RDB](http://redis.io/docs/latest/operate/oss_and_stack/management/persistence) 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](http://github.com/RedisGraph/RedisGraph/pull/2245) Support graphs [eviction](http://redis.io/docs/latest/develop/reference/eviction) - Bug fixes: - [#1493](http://github.com/RedisGraph/RedisGraph/issues/1493), [#2240](http://github.com/RedisGraph/RedisGraph/pull/2240) Fixed crash on certain queries - [#2229](http://github.com/RedisGraph/RedisGraph/issues/2229), [#2222](http://github.com/RedisGraph/RedisGraph/pull/2222) Fixed crash on certain queries - [#2209](http://github.com/RedisGraph/RedisGraph/issues/2209), [#2228](http://github.com/RedisGraph/RedisGraph/pull/2228) Fixed crash on certain invalid `DELETE` queries - [#2237](http://github.com/RedisGraph/RedisGraph/issues/2237), [#2242](http://github.com/RedisGraph/RedisGraph/pull/2242) Fixed crash on certain `PROFILE` queries - [#2230](http://github.com/RedisGraph/RedisGraph/issues/2230), [#2232](http://github.com/RedisGraph/RedisGraph/pull/2232) Fixed wrong number of reported deleted relationships on certain queries - [#2233](http://github.com/RedisGraph/RedisGraph/pull/2233) Certain valid queries were reported invalid - [#2246](http://github.com/RedisGraph/RedisGraph/issues/2246) Fixed memory leaks - Improvements: - [#2235](http://github.com/RedisGraph/RedisGraph/pull/2235) Improved [RDB](http://redis.io/docs/latest/operate/oss_and_stack/management/persistence) 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](http://github.com/RedisGraph/RedisGraph/pull/2181), [#2182](http://github.com/RedisGraph/RedisGraph/pull/2182) Full support for ARM builds - Bug fixes: - [#2167](http://github.com/RedisGraph/RedisGraph/pull/2167) Fixed a potential crash: filter placement in `OPTIONAL` subtrees - [#2176](http://github.com/RedisGraph/RedisGraph/pull/2176) Fixed a potential crash: invalid memory access in nested `DISTINCT` functions - [#2217](http://github.com/RedisGraph/RedisGraph/pull/2217) Fixed a potential crash: memory access after free on `FLUSHALL` - [#2207](http://github.com/RedisGraph/RedisGraph/pull/2207) Fixed memory leak when `MAX_QUEUED_QUERIES` is used - [#2220](http://github.com/RedisGraph/RedisGraph/pull/2220) `WITH * WHERE` - the `WHERE` filters were ignored - [#2151](http://github.com/RedisGraph/RedisGraph/pull/2151) Return correct results for aggregations with no inputs - [#2163](http://github.com/RedisGraph/RedisGraph/pull/2163) Emit error correctly on multi-query inputs - Improvements: - [#2173](http://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](http://github.com/DrTimothyAldenDavis/GraphBLAS) (GraphBLAS) 6.0.0 ### Details - Features (since 2.8-M02): - [#2109](http://github.com/RedisGraph/RedisGraph/pull/2109) Introduce `allShortestPaths` BFS function - [#2099](http://github.com/RedisGraph/RedisGraph/pull/2099) Introduce `keys` function - [#2047](http://github.com/RedisGraph/RedisGraph/pull/2047) Introduce `reduce` function - [#2076](http://github.com/RedisGraph/RedisGraph/pull/2076) Introduce XOR operation in filter trees - [#2088](http://github.com/RedisGraph/RedisGraph/pull/2088) Introduce pattern comprehensions - [#2051](http://github.com/RedisGraph/RedisGraph/pull/2051) Allow copying of entity attribute sets in `SET` clauses - [#2067](http://github.com/RedisGraph/RedisGraph/pull/2067) Allow modification of virtual key entity count (`VKEY_MAX_ENTITY_COUNT`) at runtime - [#2102](http://github.com/RedisGraph/RedisGraph/pull/2102) New load time configuration option `NODE_CREATION_BUFFER` - see [documentation](http://github.com/RedisGraph/RedisGraph/blob/master/docs/docs/configuration.md#node_creation_buffer) (MOD-2348) - [#2049](http://github.com/RedisGraph/RedisGraph/pull/2049) RediSearch supports field definitions - Performance improvements (since 2.8-M02): - [#2097](http://github.com/RedisGraph/RedisGraph/pull/2097) Locks favor writers to prevent write exhaustion - [#1945](http://github.com/RedisGraph/RedisGraph/pull/1945) Track node count per label in graph statistics - [#1872](http://github.com/RedisGraph/RedisGraph/pull/1872) Delta matrices are always [hypersparse](http://fossies.org/linux/SuiteSparse/GraphBLAS/docs/graphblas_demo.html#40) - [#1871](http://github.com/RedisGraph/RedisGraph/pull/1871) Matrix sync policies reduce the number of syncs required - [#1869](http://github.com/RedisGraph/RedisGraph/pull/1869) Transposed matrices are always boolean - [#2101](http://github.com/RedisGraph/RedisGraph/pull/2101) Entity annotation has been replaced with an AST `toString` function - [#1878](http://github.com/RedisGraph/RedisGraph/pull/1878) Slowlog queries no longer create graphs - [#2067](http://github.com/RedisGraph/RedisGraph/pull/2067) Index graph entities incrementally on restore - Faster AOF recovery (PM-1252) - Bug fixes (since 2.8-M02): - [#2016](http://github.com/RedisGraph/RedisGraph/pull/2016) Implement new BFS algorithm - [#2105](http://github.com/RedisGraph/RedisGraph/pull/2105) Creating a node with multiple properties using the same key only accepts the last value - [#2055](http://github.com/RedisGraph/RedisGraph/pull/2055) Avoid arithmetic overflow in `avg` function - [#2048](http://github.com/RedisGraph/RedisGraph/pull/2048) Modulo by zero emits division by zero error - [#2020](http://github.com/RedisGraph/RedisGraph/pull/2020) Fix evaluation of variable-length edges in expression ordering - [#2028](http://github.com/RedisGraph/RedisGraph/pull/2028) Fix utilization of record offset in procedure calls, refactor outputs - [#2014](http://github.com/RedisGraph/RedisGraph/pull/2014) Update label for every node in the AST - [#2002](http://github.com/RedisGraph/RedisGraph/pull/2002) Fix crash in index utilization using wrong query_graph - [#1976](http://github.com/RedisGraph/RedisGraph/pull/1976) Use operand matrix when available - [#1973](http://github.com/RedisGraph/RedisGraph/pull/1973) Emit error on a query that only contains parameters - [#1950](http://github.com/RedisGraph/RedisGraph/pull/1950) Print ExecutionPlan in `GRAPH.EXPLAIN` only if no errors are encountered in the construction - [#1933](http://github.com/RedisGraph/RedisGraph/pull/1933) Free thread-local data on graph deletion - [#1942](http://github.com/RedisGraph/RedisGraph/pull/1942) Fix dimensions of transposed delta matrices - [#1940](http://github.com/RedisGraph/RedisGraph/pull/1940) Do not use block client if deny blocking is specified - [#1898](http://github.com/RedisGraph/RedisGraph/pull/1898) Error when setting a property to an array containing an invalid type - [#1931](http://github.com/RedisGraph/RedisGraph/pull/1931) Sync matrices on parent process before serialization fork - [#1897](http://github.com/RedisGraph/RedisGraph/pull/1897) Aliases in `WITH` ... `ORDER BY` must be valid references - [#1913](http://github.com/RedisGraph/RedisGraph/pull/1913) Update thread-local AST for every cloned operation - [#1915](http://github.com/RedisGraph/RedisGraph/pull/1915) Validate function references in parameters - [#1911](http://github.com/RedisGraph/RedisGraph/pull/1911) Refactor `cron` task for managing query timeouts - [#1902](http://github.com/RedisGraph/RedisGraph/pull/1902) Fix incorrect behavior on `NULL` values in `CASE`...`WHEN` expressions - [#1904](http://github.com/RedisGraph/RedisGraph/pull/1904) Allow reconfiguring query timeout to 0 - [#1888](http://github.com/RedisGraph/RedisGraph/pull/1888) Synchronize matrices on creation in RDB load - [#1892](http://github.com/RedisGraph/RedisGraph/pull/1892) Validate values specified in `SET` clauses - [#1889](http://github.com/RedisGraph/RedisGraph/pull/1889) Tuple iterator now updates properly when changing matrix to serialize - [#1870](http://github.com/RedisGraph/RedisGraph/pull/1870) Fix crash in `range` function - [#2125](http://github.com/RedisGraph/RedisGraph/issues/2125) Fix crash on `UNION` ... `RETURN` * queries (MOD-2524) - [#2043](http://github.com/RedisGraph/RedisGraph/pull/2043) Avoid serialization of duplicate graph keys - [#2067](http://github.com/RedisGraph/RedisGraph/pull/2067) Numeric indices no longer lose precision on very large values - [#2072](http://github.com/RedisGraph/RedisGraph/issues/2072), [#2081](http://github.com/RedisGraph/RedisGraph/pull/2081) CRLF sequences embedded in strings no longer trigger a protocol error when being emitted - [#2139](http://github.com/RedisGraph/RedisGraph/pull/2139) Fix crash when trying to retrieve an out-of-bounds item - [#2149](http://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