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