Changelog
New Commands
- Support for JSON.TYPE command
- Support for EXPIREAT command
- Support for DBSIZE command
- Support for EXPIRETIME command
- Deque implementation for LPUSH, RPUSH, LPOP, and RPOP commands
- JSON support in WHERE clause for queries
- Improved performance of JSON WHERE clause evaluation
- Refactored store abstraction as a prerequisite for multi-threading
Bug Fixes
- Type deduction logic for integers and related fixes
- RENAME command now fetches the key before renaming
- Fixed QWATCH response format and executor type inference logic
- Fixed type casting logic for SET and GET commands
- Corrected INCR/DECR logic and added tests
- Fixed incorrect benchmark iterations for QueueRef
- Corrected the JSON.SET command Arity
- Standardized error messages across codebase
- Updated AUTH error message to be consistent with Redis
- Keep JSON.TYPE consistent with Redis
- Fixed flaky tests due to JSON ordering
Testing
- Added unit and integration tests for EXPIRE and EXPIRETIME commands
- Added stubbed time for tests
- Run complete test suite on PRs
Docs
- Created document on inconsistencies between DiceDB and Redis
Developer Workflow
- Added make target for linter
- Updated linter.yml
Discussions