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

Changes for version 0.64

  • ENHANCEMENTS:
  • Added potentially useful script, alzabo_to_ascii, in eg/ dir.
  • Ask for port when setting up tests.
  • Turn on stacktraces for all Alzabo::Exception objects.
  • Removed the deprecated "lookup_tables" option from Alzabo::MethodMaker.
  • Removed the deprecated next_row methods from the various cursor classes.
  • Removed the deprecated Alzabo::Runtime::Table->func method.
  • Major changes to how joins are done. It is now possible to mix together various sorts of outer joins in a single query. In addition, it is now possible to specify a foreign key that should be used when joining two tables.
  • The "tables" parameter has been renamed as "join".
  • The Alzabo::Create::Schema->right_outer_join and Alzabo::Create::Schema->left_outer_join methods have been removed. Use the ->join method instead, which can now be used to do outer joins as well, via:
    • $schema->join( join => [ left_outer_join => $foo, $bar ], ... )
  • The functionality of Alzabo::Runtime::OuterJoinCursor has been merged into Alzabo::Runtime::JoinCursor.
  • Alzabo::Exception::Driver->bind now returns an array reference, not an array.
  • BUG FIXES:
  • Fix failure to load schema objects from file when $\ is set to something like "\n". Reported by Brad Bowman.
  • Fixed Postgres reverse engineering to work with slightly changed system tables in 7.2.
  • Fix handling of table alterations for postgres. Temp tables were being created but not dropped and the data saved in the temp table was not being restored to the real table. Also, Alzabo was trying to create sequences again when altering tables Based mostly on a patch from Daniel Gaspani.
  • Fix handling of primary key changes for Postgres (I'm still not sure it's entirely correct).
  • Fix detection of primary key changes for schema diffs.
  • Handle NOT IN for where conditions.

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
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
Row objects that aren't yet in the database
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
Alzabo configuration information

Provides

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