Alzabo
view release on metacpan or search on metacpan
- Fixed Alzabo::Table->primary_key, which would die when no primary
key existed and it was called in a scalar context. In an array
context, all the columns in the table were returned. Reported by
Eric Prestemon.
- Alzabo::ObjectCache::Sync::RDBMS created a table that it would later
consider incorrect. This made this module unusable.
- Alzabo::ObjectCache::Sync::RDBMS caused weird random errors when
used with MySQL's InnoDB tables.
- In the schema creator, the link to the graph page, and the link _on_
the graph page to the image, were both broken.
- Alzabo was allowing you to rename a column to the name of an
existing column in a table. Similarly, a table could be renamed to
the same name as an existing table. Doing this could trash a
schema.
- Alzabo::Runtime::Table->one_row would return undef if no row was
found, which in a list context evaluated to a true value.
- Allow no_cache option when calling Alzabo::Runtime::Schema->join.
- When displaying SQL, the schema creator now makes sure to
HTML-escape it, because it's possible to have HTML in there (in a
default, most likely).
- The "children" method generated by Alzabo::MethodMaker did not allow
you to add additional where clause constraints to the query.
---------------------------------------------------------------------------
0.69 September 19, 2002
ENHANCEMENTS:
- Add count method to Alzabo::DriverStatement objects.
BUG FIXES:
- ** A particularly nasty bug sometimes manifested itself when
removing a foreign key. This bug caused the deletion of all foreign
keys involving the _corresponding_ column(s) in the foreign table.
Needless to say, this could make a big mess.
- Fix some typos in the generated docs created by Alzabo::MethodMaker.
- A join that included a where clause with an 'OR' generated improper
SQL. Reported by Ilya Martynov.
- Calling the Alzabo::Runtime::JoinCursor->next_as_hash method when
the query involved an outer join could cause a runtime error.
- In where clause specifications, 'and' and 'or' were only being
allowed in lower-case. They are now allowed in any case.
- Aliases did not work in outer joins. This has been fixed.
- Using outer joins was a bit fragile, in that the order of the outer
join in the context of the other joins could cause Alzabo to
generate incorrect SQL. Now outer joins should work no matter what.
- A couple links in the schema creator had a hardcoded ".mhtml"
extension, as opposed to using the value of
Alzabo::Config::mason_extension(). Patch by Scott Lanning.
---------------------------------------------------------------------------
0.68 July 20, 2002
ENHANCEMENTS:
- Updated the thank you list in the README file (you too can be listed
by sending me useful bug reports, patches, suggestions, or reminding
that you already did so and I forgot ;)
- Allow the Driver's ->schemas method to take connection params,
wherever possible. This allows Alzabo::Create::Schema methods like
->create, ->sync_backend_sql, and ->sync_backend to work properly
when the database server is on another machine. Patch by Ilya
Martynov.
- Added Alzabo::Runtime::*Row->is_live method to easily distinguish
between real and potential rows.
- Did some profiling of data retrieval (Alzabo::Runtime bits) and
optimized some of the most heavily used pieces of Alzabo.
- Added the Alzabo::Runtime::Schema->prefetch_all and
Alzabo::Runtime::Schema->prefetch_all_but_blobs convenience methods.
- Added a ->count method to the cursor classes.
- Added ->is_integer, ->is_floating_point, ->is_date, ->is_datetime,
->is_time, and ->generic_type methods to column objects.
- The Alzabo::Driver->schemas method now takes connection parameters.
See your specific driver subclass for details on which. Bug report
by Ilya Martynov.
- Added Alzabo::Runtime::Schema->disconnect method. Patch by Ilya
Martynov.
- Make the Makefile.PL act gracefully when it is invoked without a
tty. Patch by Ilya Martynov.
- The quoting of identifiers (table/column names) is now optional, and
_off_ by default. In profiling I found that a non-trivial amount of
time was being spent quoting these, and in most cases it's not
necessary. There is now a
Alzabo::Runtime::Schema->set_quote_identifiers method that can be
used to change this behavior.
Identifiers are always quoted when using Alzabo::Create::* with
Postgres, however.
- Did a fair amount of profiling in order to optimize Alzabo's data
fetching. In general, Alzabo::Runtime::* operations should be
faster.
( run in 1.669 second using v1.01-cache-2.11-cpan-b16cb0d3907 )