Alzabo is a program and a module suite, with two core functions. Its first
use is as a data modelling tool. Through either a schema creation
interface or a perl program, you can create a set of schema, table,
column, etc.  objects to represent your data model. Alzabo is also capable
of reverse engineering your data model from an existing system.

Its second function is as an 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
high level interface to common operations such as SQL SELECT, INSERT,
DELETE, and UPDATE commands.

Please see http://alzabo.sourceforge.net/ for more info.  You can also
install Alzabo via CPAN.


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.



Reply via email to