More bug fixes and new features (which will require bug fixes, inspire new
features, which will ...)
Sourceforge home page: http://alzabo.sourceforge.net/
Project page: http://sourceforge.net/projects/alzabo/
Alzabo is a two-fold program. Its first function is as a data modelling
tool. Through either a schema creation interface or a custom perl program,
you can create a set of schema, table, column, etc. objects that represent
your data model. Alzabo is also capable of reverse engineering an existing
Its second function is as a RDBMS to object mapping system. Once you have
created a schema, you can use the Alzabo::Runtime::Table and
Alzabo::Runtime::Row classes to access its data. These classes offer a low
level interface to common operations such as SQL SELECT, INSERT, DELETE,
and UPDATE commands.
- Lazy column evaluation had made it possible to create an
Alzabo::Runtime::Row object that did not correspond to any data in the
database if its table object did specify any rows to prefetch. This
would have only been discovered later by calling the select method on
a non-primary key column. This hole was plugged.
- As a corollary to the above change methods in Alzabo::Runtime::Table
that produce rows now always return an empty list or undef when the
rows cannot be made because the specified primary key doesn't exist.
Previously, the rows_by_where_clause method did this while others
would cause an exception either during the object creation or later,
depending upon the situation described above.
- GENERAL NOTE: I probably used exceptions too much, as in the above
case. I will probably be making a few more changes like this in the
- Bug fix in Alzabo::RDBMSRules when making SQL diffs. Forgot to
account for new foreign key method names.
- Bug fix related to MySQL auto_increment column and
Alzabo::Runtime::Table insert method. Basically, you couldn't insert
an to a table and use its auto_increment feature.
- Alzabo::Table::set_prefetch now makes sure that primary key columns
are not included. It simply ignores them but they will not be
returned by the prefetch method.
- fix bug where some row retrieval methods would fail if not given a
- Doc bug fix. Docs for Alzabo::Runtime::Table listed group_by_column
as simply group. Of course, this probably only needs to be used by
- Added Alzabo::Runtime::Table rows_where method.
- Added Alzabo::Runtime::Table all_rows method.
- Documented 'bind' parameter for Alzabo::Runtime::Table
We await the New Sun