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

Changes for version 0.61

  • ENHANCEMENTS:
  • Improve documentation for new Alzabo::Create::Schema->sync_backend method and note its caveats.
  • It is now possible to use SQL functions as part of order_by clauses. For example:
    • my $cursor = $schema->select( select => [ COUNT('*'), $id_col ], tables => [ $foo_tab, $bar_tab ], group_by => $id_col, order_by => [ COUNT('*'), 'DESC' ] );
  • Allow a call to Alzabo::Runtime::Table->insert without a values parameter. This is potentially useful for tables where the primary key is sequenced and the other columns have defaults or are NULLable. Patch by Ilya Martynov.
  • BUG FIXES:
  • A call to the schema class's select or function methods that had both an order_by and group_by parameter would fail because it tried to process the order by clause before the group by clause.
  • When thawing potential row objects, Alzabo was trying to stick them into the cache, which may have worked before but not now, and should be avoided anyway.
  • The parent and children methods created by Alzabo::MethodMaker were incorrect (and unfortunately the tests of this feature were hosed too).
  • Add YEAR as exportable function from Alzabo::SQLMaker::MySQL.
  • Fix definition of WEEK and YEARWEEK functions exported from Alzabo::SQLMaker::MySQL to accept 1 or 2 parameters.
  • A bug in the caching code was throwing an exception when attempting to update objects that weren't expired. This only seemed to occur in conjuction with the prefetch functionality. The caching code has been simplified a bit and is hopefully now bug-free (I can dream, can't I?).
  • Make it possible to call Alzabo::Runtime::Schema->join with only one table in the tables parameter. This is useful if you are constructing your join at runtime and you don't know how many tables you'll end up with.
  • Where clauses that began with '(' were not working. Reported (with a test suite patch) by Ilya Martynov.
  • Where clauses that contained something like ( ')', 'and' (or 'or') ) were not working either.
  • This file incorrectly thanked TJ Mather for separating out Class::Factory::Util, but this was done by Terrence Brannon. Oops, brain fart.
  • Improve the recognition of more defaults that MySQL uses for column lengths and defaults, in order to improve reverse engineering.
  • Recognize defaults like 0 or '' for MySQL.
  • Fix Alzabo::Create::Schema->sync_backend method.

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 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/Exceptions.pm
in lib/Alzabo/SQLMaker.pm