ANNOUNCE: Alzabo 0.46
[email protected] (Dave Rolsky)
| Newsgroups | perl.dbi.announce |
|---|---|
| Message-ID | <[email protected]> |
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.
This releaes adds the ability to use SQL functions anywhere that you'd
expect, via a very simple interface. For example, this can now be made to
work:
$row->update( mod_time => NOW() );
Changes
0.46
ENHANCEMENTS:
- Column types are now canonized to be all upper case. When multiple
keywords specify the same type ('INT' and 'INTEGER', for example), one
will be chosen. This improves the quality of the reverse engineering
and the usability of the schema creation interface.
- You can now use SQL functions pretty much anywhere you would want
(in inserts, updates, where clauses, etc). See the "Using SQL
Functions" section in the Alzabo.pm docs for more details.
- As a corollary to the above, the Alzabo::Runtime::Table->function
method has been created to replace the old
Alzabo::Runtime::Table->func method. This new method takes advantage
of the new system for using SQL functions and is simpler and more
flexible. It allows you to perform all sorts of aggregate selects.
- Added the Alzabo::Runtime::Row->select_hash method. Requested by
Dana Powers.
DEPRECATIONS:
- The Alzabo::Runtime::Table->func method has been deprecated.
BUG FIXES:
- When adding an AUTO_INCREMENT column to an existing MySQL table, the
SQL generated would cause an error. This has been fixed. However, if
the table already has more than row then chances are this still won't
work (because MySQL does not try to generate needed unique values for
the column when it is added).