Changes for version 0.05
- Added a new Data::ObjectDriver::ResultSet abstraction for building result sets with lazy-loading of the actual results. This allows for passing around a representation of a full result set (no limit, no offset, etc), and allowing callers to modify the set as needed.
- search() now returns a subref blessed into the new D::OD::Iterator class. It's backwards-compatible (you can still call $iter->()), but it now supports $iter->next() as well.
- Added a D::OD::SQL::add_complex_where method, for creating more complex WHERE clauses with boolean operations.
- Added instrumentation/profiling for the memcached, Apache, and RAM caching drivers.
- Improved "remove" support in the experimental Multiplexer driver.
- Fixed an ordering bug with BaseCache->update: the cache is now updated after the fallback (a persistent store, usually) is updated, to prevent the cache being updated but the backend erroring out.
- Let DSNs start with "DBI:" instead of only "dbi:"
- Fix a bug where the iterator version of search() (search() called in scalar context) wasn't calling finish() on $sth. It was generating warnings on certain circumstances.
- Fixed a circular reference when using has_a.
Modules
Simple, transparent data interface, with caching
base class for modeled objects
parent class for caching object drivers
object driver for caching objects in Apache's request space
object driver for caching objects with memcached
base class for database drivers
SQLite driver
Search thru partitioned objects without the partition_key
Multiplex multiple partitioned drivers
base class for partitioned object drivers
basic partitioned object driver
container class for common database error codes
Query profiling
Manage a DB query
an SQL statement
Provides
in lib/Data/ObjectDriver/BaseView.pm
in lib/Data/ObjectDriver/Driver/Cache/Cache.pm
in lib/Data/ObjectDriver/Driver/Cache/RAM.pm
in lib/Data/ObjectDriver/Driver/DBD/Pg.pm
in lib/Data/ObjectDriver/Driver/DBD/mysql.pm
in lib/Data/ObjectDriver/Driver/DBI.pm
in lib/Data/ObjectDriver/Iterator.pm