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.63

ENHANCEMENTS:

- Calling Alzabo::Runtime::Row->select or
Alzabo::Runtime::Row->select_hash with no arguments returns the values
for all of the columns in the table.  Suggested by Jeremy R. Semeiks.

- The Alzabo::Runtime::Row->id method has been renamed to id_as_string
for the benefit of those crazy people who like to use "id" as a column
name and want Alzabo::MethodMaker to be able to create such a method.
Suggested by Alexei Barantsev.

- Changed the Alzabo::Create::Schema->sync_backend method so that if
there was no corresponding schema in the RDBMS, then it will
instantiate a new schema instead of just blowing up.  Similarly, the
sync_backend_sql method will just return the SQL necessary to create
the schema from scratch.

BUG FIXES:

- Removing column attributes via the schema creator was broken.
Adding them could have caused errors but generally worked.

- If you changed a column from non-sequenced to sequenced, the SQL
"diff" was not reflecting this.

- Revert a previous change to MySQL reverse engineering.  Now default
for numeric columns that are not 0 or 0.00 are used instead of being
ignored.  The fact that MySQL has 'default defaults' _really_ screws
things up.  Bad MySQL!

- A query that ended with a subgroup could not be followed with an
order by or group by clause.  Bug report and test case submitted by
Ilya Martynov.

- Nested subgroups in where clauses (like where => [ '(', '(', ....)
were not being allowed.  Bug report and test case submitted by Ilya
Martynov.

- Alzabo::MethodMaker would overwrite methods in the
Alzabo::Runtime::Row/CachedRow/PotentialRow classes.  This has been
fixed.  Reported by Alexei Barantsev.

- Allow order by clause to contain only a SQL function to allow things
like "SELECT foo FROM Bar ORDER BY RAND()", which works with MySQL.




Reply via email to