Changes for version v1.0.7 - 2026-09-08

  • SECURITY
    • The issue with ResultSet::update() not working properly when invalidating the query cache has been resolved. While update() was able to create a key for invalidating the cache, it was not able to call clear_cache afterwards. Because cache_ttl was on, any read action conducted after the update would not return any new values. This meant that any changes made to the database would not be reflected in the read statements as it kept returning information that had already been updated long ago. In order to fix the issue with update(), it was made that update() should always call clear_cache just the same way as create() and delete() do.
    • Added a regression test (t/148-caching.t) reproducing the stale read and verifying update() now invalidates the cache.

Documentation

Modules

Non-blocking, multi-worker asynchronous wrapper for DBIx::Class
Base class for DBIx::Class::Async exceptions
Exception for column names that are ambiguous across joined tables
Translate raw DBIx::Class errors into typed exception objects
Exception for absent required columns on insert
Exception for undeclared relationship names used in queries
Exception for operations on un-inserted row objects
Exception for relationship name passed where a column was expected
Non-blocking resultset proxy with Future-based execution
Asynchronous pagination handling for Async ResultSets
Asynchronous operations on a single ResultSource column
Asynchronous Row object representing a single database record.
Non-blocking, worker-pool based Proxy for DBIx::Class::Schema
Normalise -ident clauses in ResultSet select attributes
Storage Layer for DBIx::Class::Async
DBI-based async storage backend for DBIx::Class::Async
Asynchronous cursor for DBIx::Class ResultSets using Futures