This maintenance release brings the 2.0.3 query-result cache fix to BerlinDB 3.0.
- Prevent repeated query invalidations from accumulating persistent cache entries for the same query.
- Store the generation with cached results and replace stale entries under a stable key.
- Remove the unused private cache-key parameter noted in the review of #254.
- Add regression tests for mutation, empty results, missing/stale generations, and invalidation during a database read.
Robin's unset-value cache-key correction is already present in 3.0.0 and remains in this release. No public API or minimum runtime requirements change.
Existing orphaned entries remain until removed by your cache backend's cleanup or flush facilities. This release does not add expiration for distinct queries.
Props @hellofromahmed (Ahmed Saeed) for reporting #253, and @robincornett (Robin Cornett) for the existing cache-key correction in #185.
Validated on PHP 8.1 and 8.2 with WordPress 6.7.7 and MariaDB 10.2 (617 tests / 1,209 assertions each), plus Redis cache regression tests, PHPStan, and PHPCS.
PR: #255
Full changelog: 3.0.0...3.0.1