Skip to content

Reply with array of return codes if the key does not exist for HFE commands #13343

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 14, 2024

Conversation

tezc
Copy link
Collaborator

@tezc tezc commented Jun 13, 2024

Currently, HFE commands reply with empty array if the key does not exist.
Though, non-existing key and empty key is the same thing. It means fields given in the command do not exist in the empty key. So, replying with array of 'no field' error codes (-2) suits better to Redis logic.
e.g. Similarly, hmget returns array of nulls if the key does not exist.

After this PR:

127.0.0.1:6379> hpersist missingkey fields 2 a b
1) (integer) -2
2) (integer) -2

@tezc tezc requested review from sundb and moticless June 13, 2024 10:24
@tezc tezc merged commit 4aa25d0 into redis:unstable Jun 14, 2024
13 checks passed
@tezc tezc deleted the fix-no-key branch June 14, 2024 06:35
@YaacovHazan YaacovHazan mentioned this pull request Jun 27, 2024
YaacovHazan added a commit that referenced this pull request Jun 27, 2024
Upgrade urgency LOW: This is the second Release Candidate for Redis 7.4.

Performance and resource utilization improvements
=================================================
* #13296 Optimize CPU cache efficiency

Changes to new 7.4 new features (compared to 7.4 RC1)
=====================================================
* #13343 Hash - expiration of individual fields: when key does not exist
- reply with an array (nonexisting code for each field)
* #13329 Hash - expiration of individual fields: new keyspace event:
`hexpired`

Modules API - Potentially breaking changes to new 7.4 features (compared
to 7.4 RC1)

====================================================================================
* #13326 Hash - expiration of individual fields: avoid lazy expire when
called from a Modules API function
sundb pushed a commit to sundb/redis that referenced this pull request Aug 29, 2024
…mmands (redis#13343)

Currently, HFE commands reply with empty array if the key does not
exist. Though, non-existing key and empty key is the same thing. 
It means fields given in the command do not exist in the empty key. 
So, replying with an array of 'no field' error codes (-2) suits better 
to Redis logic. e.g. Similarly, `hmget` returns array of nulls if the 
key does not exist.

After this PR:
```
127.0.0.1:6379> hpersist missingkey fields 2 a b
1) (integer) -2
2) (integer) -2
```
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