Changes for version 0.02
- Added Data::ObjectDriver::BaseView, a base class for creating "views" across multiple tables, or involving more complex aggregate queries.
- Added trigger/callback support for common operations. See the Data::ObjectDriver documentation for more details.
- Added GROUP BY support in Data::ObjectDriver::SQL.
- Data::ObjectDriver::BaseCache->search now uses lookup_multi to do a very fast PK lookup, which will hit the cache first before the backend DB.
- Fixed bugs with BLOB columns in SQLite driver.
- Added connect_options option to Data::ObjectDriver::Driver::DBI, for passing in custom options for a DBI->connect call.
- Data::ObjectDriver::BaseObject->remove now works as a class method.
- Added Data::ObjectDriver::BaseObject->primary_key_tuple for retrieving the primary key value(s) for an object.
- Added Data::ObjectDriver::BaseObject->refresh to reload an object from the database.
- Added support for HAVING clauses in Data::ObjectDriver::SQL. For views that are not attached to a particular datasource, any terms passed in to the query will automatically be turned into HAVING clauses.
- Improved the lookup_multi method for all BaseCache subclasses: we now allow the subclass to look up multiple values in the cache and return any already-cached items, then make a list of the remaining IDs and send them to fallback->lookup_multi.
- Driver::DBI->lookup_multi will now use an OR clause to look up multiple values in one query.
- Added lots of test cases.
- Pod fix (Thanks to Koichi Taniguchi)
Modules
Simple, transparent data interface, with caching
base class for modeled objects
Provides
in lib/Data/ObjectDriver/BaseView.pm
in lib/Data/ObjectDriver/Driver/BaseCache.pm
in lib/Data/ObjectDriver/Driver/Cache/Apache.pm
in lib/Data/ObjectDriver/Driver/Cache/Cache.pm
in lib/Data/ObjectDriver/Driver/Cache/Memcached.pm
in lib/Data/ObjectDriver/Driver/Cache/RAM.pm
in lib/Data/ObjectDriver/Driver/DBD.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/Driver/Partition.pm
in lib/Data/ObjectDriver/SQL.pm