Changes for version 0.50 - 2026-10-13
- Bug Fixes
- new(): added redis_key parameter — a new constructor argument that bypasses SAFE_QUALIFIED validation. It's only accepted when a redis:// database URL is also present, so it can't be injected into SQL paths.
- _open() Redis section: standalone key fallback — after KEYS tablename:* returns nothing, it now checks TYPE redis_key and fetches data according to the actual key type: HASH → HGETALL (one row), LIST → LRANGE (index/value rows), SET → SMEMBERS (member rows), ZSET → ZRANGE WITHSCORES (member/score rows), STRING → GET (value row).
- selectall_arrayref(): Redis crash guard — before falling through to the DBI prepare_cached path, returns an empty arrayref when type is 'Redis'. This protects against the Can't call method "prepare_cached" on an undefined value crash when a key doesn't exist or is empty.
Documentation
Modules
Read-only Database Abstraction Layer (ORM)
Fluent, chainable query builder for Database::Abstraction