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