#332: fixes inconsistency in the incr command #677
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
fixes #332
Inconsistencies found only with the error messages and not in functionality.
Data types:
Redis: "INCR strkey": "Error: value is not an integer or out of range"
DiceDB: "INCR strkey": "Error: the operation is not permitted on this encoding"
Redis: "INCR floatkey": "Error: value is not an integer or out of range"
DiceDB: "INCR floatkey": "Error: the operation is not permitted on this encoding"
This is the case for all non-integer values.
The error messages are different, though the behavior (not incrementing non-integer values) is consistent.
Overflow handling:
Redis: "INCR maxint": "Error: increment or decrement would overflow"
DiceDB: "INCR maxint": "Error: value is out of range"
The error messages differ, but both prevent overflow.
Cases working correctly:
To test with keys that have expiry I had to run the following:
This can be achieved by using SETEX. Could be a good addition.
Another good to have will be the FLUSHALL command.
edit: saw that there is already progress on SETEX command - will be a good addition.
cc: @JyotinderSingh Apologies for the delay in creating the PR;