The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.58

  • ENHANCEMENTS:
  • Added new insert_hooks, update_hooks, select_hooks, and delete_hooks options to Alzabo::MethodMaker. Suggested by Ilya Martynov.
  • Moved all the important document for the object caching system into Alzabo::ObjectCache, including the import options for all of the various modules.
  • Added Alzabo::ObjectCache::Sync::RDBMS & Alzabo::ObjectCache::Store::RDBMS. The former finally allows synchronization of multiple processes across multiple machines!
  • Add Alzabo::Schema->has_table and Alzabo::Table->has_column methods.
  • Make BYTEA a legal column type for postgres. This is treated as a blob type.
  • BUG FIXES:
  • The way cardinality and dependency was being represented in the schema graphs was sometimes backward and sometimes just broken.
  • Fixed Alzabo::ObjectCache::Store::BerkeleyDB->clear, which was not actually doing anything. Added tests that catch this.
  • The lookup_tables option, which was deprecated in 0.57, was not being allowed at all.
  • Calls to select_hash on cached rows were not going through the cache checking routines, possibly returning expired data. Added tests for this.
  • Eliminate race condition in Alzabo::ObjectCache::Sync::BerkeleyDB.
  • The Alzabo::Runtime::Row->rows_by_foreign_key method wasn't doing quite what it said. In cases where there was a 1..1 or n..1 relationship to columns that were not the table's primary key, a cursor would be returned instead of a single row. Reported by Ilya Martynov.
  • Alzabo::MethoMaker could generate 'subroutine foo redefined' warnings . Reported by Ilya Martynov.
  • Fixed clear method for all Alzabo::ObjectCache::Store::* modules.
  • DEPRECATIONS:
  • The insert and update options for Alzabo::MethodMaker have been deprecated. They have been replaced by the new insert_hooks and update_hooks options, along with new select_hooks and delete_hooks options.
  • INCOMPATIBILITIES:
  • If you specify give the 'all' parameter to MethodMaker, 'insert' and 'update' are no longer included.

Documentation

Frequently Asked Questions
A quick reference to methods in the Alzabo classes

Modules

A data modelling tool and RDBMS-OO mapper
Saves a set of changes as callbacks that can be backed out if needed
Column objects
Holds the type attribute for a column
Loads all Alzabo::Create::* classes
Column objects for use in schema creation
Column definition object for schema creation
Foreign key objects for schema creation.
Index objects for schema creation
Schema objects for schema creation
Table objects for schema creation
Alzabo base class for RDBMS drivers
MySQL specific Alzabo driver subclass
PostgreSQL specific Alzabo driver subclass
Creates all exception subclasses used in Alzabo.
Foreign key (relation) objects
Index objects
Auto-generate useful methods based on an existing schema
A simple in-memory cache for row objects.
Cache objects in a BerkeleyDB file
Make any storage module an LRU
Cache objects in memory
Doesn't really store anything
Cache objects in an RDBMS backend
Base class for syncing classes
Uses a DBM file to sync object caches
Base class for syncing modules that use DBM files
Uses a Berkeley DB file to sync object caches
Uses a IPC file to sync object caches
No inter-process cache syncing
Uses an RDBM backend to sync object caches
Uses an SDBM file to sync object caches
Base class for Alzabo RDBMS rulesets
MySQL specific database rules.
PostgreSQL specific database rules
Loads all Alzabo::Runtime::* classes
Cached row objects
Column objects
Column definition objects
Base class for Alzabo cursors
Foreign key objects
Index objects
Cursor that returns arrays of Alzabo::Runtime::Row objects
Cursor that returns arrays of Alzabo::Runtime::Row objects or undef
Row objects
Cursor that returns Alzabo::Runtime::Row objects
Schema objects
Table objects
Alzabo base class for RDBMS drivers
Alzabo SQL making class for MySQL
Alzabo SQL making class for PostgreSQL
Schema objects
Table objects
Utility functions for Alzabo
Alzabo configuration information

Provides

in lib/Alzabo/Driver.pm
in lib/Alzabo/Exceptions.pm
in lib/Alzabo/SQLMaker.pm