From ffebc5834e35a4dd48f27c8dd9d7ef4a5ea6f481 Mon Sep 17 00:00:00 2001 From: NicoAvanzDev <35104310+NicoAvanzDev@users.noreply.github.com> Date: Thu, 10 Mar 2022 04:32:56 +0100 Subject: [PATCH] Allow XTRIM maxLength equal 0 (#2030) Since "XTRIM key MAXLEN 0" is allowed by Redis, it may be useful remove the coded constraint "MAXLEN > 0" in order to clean the whole stream. --- docs/ReleaseNotes.md | 1 + src/StackExchange.Redis/RedisDatabase.cs | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index a6f8cdb08..53e00ecae 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -3,6 +3,7 @@ ## Unreleased - Fix [#1988](https://github.com/StackExchange/StackExchange.Redis/issues/1988): Don't issue `SELECT` commands if explicitly disabled ([#2023 by NickCraver](https://github.com/StackExchange/StackExchange.Redis/pull/2023)) +- Fix: Allow `XTRIM` `MAXLEN` argument to be `0` ([#2030 by NicoAvanzDev](https://github.com/StackExchange/StackExchange.Redis/pull/2030)) - Adds: `ConfigurationOptions.BeforeSocketConnect` for configuring sockets between creation and connection ([#2031 by NickCraver](https://github.com/StackExchange/StackExchange.Redis/pull/2031)) ## 2.5.43 diff --git a/src/StackExchange.Redis/RedisDatabase.cs b/src/StackExchange.Redis/RedisDatabase.cs index b951bef0a..1aa3a84d0 100644 --- a/src/StackExchange.Redis/RedisDatabase.cs +++ b/src/StackExchange.Redis/RedisDatabase.cs @@ -3402,9 +3402,9 @@ private Message GetSingleStreamReadMessage(RedisKey key, RedisValue afterId, int private Message GetStreamTrimMessage(RedisKey key, int maxLength, bool useApproximateMaxLength, CommandFlags flags) { - if (maxLength <= 0) + if (maxLength < 0) { - throw new ArgumentOutOfRangeException(nameof(maxLength), "maxLength must be greater than 0."); + throw new ArgumentOutOfRangeException(nameof(maxLength), "maxLength must be equal to or greater than 0."); } var values = new RedisValue[2 + (useApproximateMaxLength ? 1 : 0)];