Skip to content

feat(string): add digest length validation for DelEX IFDEQ/IFDNE#3453

Open
kirito632 wants to merge 2 commits intoapache:unstablefrom
kirito632:feat-delex-condition
Open

feat(string): add digest length validation for DelEX IFDEQ/IFDNE#3453
kirito632 wants to merge 2 commits intoapache:unstablefrom
kirito632:feat-delex-condition

Conversation

@kirito632
Copy link
Copy Markdown

  • Add 16-character digest validation for IFDEQ/IFDNE options in DelEX command
  • Return clear error if digest length is not exactly 16 hexadecimal characters
  • Add test case for invalid digest length rejection as requested by reviewer

This commit only modifies DelEX command behavior.

@kirito632 kirito632 force-pushed the feat-delex-condition branch from 819cd81 to e9c7b8a Compare April 16, 2026 13:52
@jihuayu jihuayu self-requested a review April 17, 2026 01:15
Copy link
Copy Markdown
Member

@jihuayu jihuayu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Redis Stack handles uppercase scenarios; please add this test case.

	t.Run("DelEX IFDEQ and IFDNE accept uppercase digest", func(t *testing.T) {
		key := "test-string-key-uppercase-digest"
		value := "Hello world"
		var digest string

		require.NoError(t, rdb.Del(ctx, key).Err())
		require.NoError(t, rdb.Set(ctx, key, value, 0).Err())
		digest = strings.ToUpper(rdb.Do(ctx, "DIGEST", key).Val().(string))
		require.Equal(t, int64(1), rdb.Do(ctx, "DelEX", key, "ifdeq", digest).Val())
		require.Equal(t, int64(0), rdb.Exists(ctx, key).Val())

		require.NoError(t, rdb.Set(ctx, key, value, 0).Err())
		digest = strings.ToUpper(rdb.Do(ctx, "DIGEST", key).Val().(string))
		require.Equal(t, int64(0), rdb.Do(ctx, "DelEX", key, "ifdne", digest).Val())
		require.Equal(t, value, rdb.Get(ctx, key).Val())
	})

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants