Changes for version 0.69

  • ENHANCEMENTS:
  • Add count method to Alzabo::DriverStatement objects.
  • BUG FIXES:
  • - A particularly nasty bug sometimes manifested itself when removing a foreign key. This bug caused the deletion of all foreign keys involving the _corresponding_ column(s) in the foreign table. Needless to say, this could make a big mess.
  • A join that included a where clause with an 'OR' generated improper SQL. Reported by Ilya Martynov.
  • Calling the Alzabo::Runtime::JoinCursor->next_as_hash method when the query involved an outer join could cause a runtime error.
  • In where clause specifications, 'and' and 'or' were only being allowed in lower-case. They are now allowed in any case.
  • Aliases did not work in outer joins. This has been fixed.
  • Using outer joins was a bit fragile, in that the order of the outer join in the context of the other joins could cause Alzabo to generate incorrect SQL. Now outer joins should work no matter what.
  • A couple links in the schema creator had a hardcoded ".mhtml" extension, as opposed to using the value of Alzabo::Config::mason_extension(). Patch by Scott Lanning.

Documentation

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

Modules

A data modelling tool and RDBMS-OO mapper
Convert old data structures
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/MethodMaker.pm
in lib/Alzabo/MethodMaker.pm
in lib/Alzabo/Driver.pm
in lib/Alzabo/Exceptions.pm
in lib/Alzabo/Exceptions.pm
in lib/Alzabo/MethodMaker.pm
in lib/Alzabo/SQLMaker.pm
in lib/Alzabo/Runtime/Row.pm
in lib/Alzabo/Runtime/Row.pm