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

Changes for version 0.88

  • ENHANCEMENTS:
  • Added a new option when creating a column, "default_is_raw", which can be used to allow for a function like NOW() as a column default.
  • Added an "--automated" option for Build.PL, to force it to just use default prereqs. Also added other options to be used with this one, see "perl Build.PL --help" for detalis.
  • The Alzabo::Driver classes will now transparently reconnect to the DBMS if you attempt to use them in a child process after a fork. This prevents various problems that can occur if you attempt to share a DBI handle between two processes. One notable problem is that the parent's DBI handle is closed when the child exits.
  • Added support for (VAR)BINARY type columns in MySQL. Request by Martin Groenemeyer. RT Ticket #16338.
  • BUG FIXES:
  • Alzabo::Table->foreign_keys_by_table() and foreign_keys_by_column() could return the same object more than once when using multiple-column foreign keys. Reported by Rainer Rohmfeld. RT Ticket #13885.
  • Calling connect() on a driver object (via a schema object) with different parameters did not reconnect if the existing handle was still good. This was explicitly opposite what the docs said the code was doing. RT Ticket #17942.
  • Fix bug in reverse engineering function indexes in Postgres. The reverse engineering code always ended up thinking all of the columns in the table were used in the index.
  • Fix failing MySQL test in 03-runtime.t. The problem was the test, not the Alzabo core. Reported by Alex McLintock.
  • Fixed adding too many "=cut" directives in docs generated by Alzabo::MethodMaker.
  • Fixed SQL generation for the Postgres functions CURRENT_DATE, CURRENT_TIME, and CURRENT_TIMESTAMP, which should not have parentheses after them.
  • Documented that DATE_TRUNC() is a support Pg function in Alzabo::SQLMaker::PostgreSQL. RT Ticket #13843.

Documentation

Documentation on Alzabo's design
Frequently Asked Questions
Introductory information about Alzabo
Alzabo and MySQL
Alzabo and PostgreSQL
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
Creates constants used to turn on debugging
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
Base class for Alzabo RDBMS rulesets
MySQL specific database rules.
PostgreSQL specific database rules
Loads all Alzabo::Runtime::* classes
Column objects
Column definition objects
Base class for Alzabo cursors
Foreign key objects
Index objects
A handle representing an insert
Cursor that returns arrays of Alzabo::Runtime::Row objects
Row objects
Cursor that returns Alzabo::Runtime::Row objects
Row objects that have been deleted
Cached row objects that represent actual database rows
Row objects representing rows in the database
Row objects that are not in the database
Schema objects
Table objects
Implements a row cache for Alzabo
Alzabo base class for RDBMS drivers
Alzabo SQL making class for MySQL
Alzabo SQL making class for PostgreSQL
Schema objects
Table objects

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