Alzabo

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

                 AND Bar.something > 2

- Added support for HAVING in queries.

BUG FIXES:

- Exceptions did not include a stack trace.

- Trying to create a Postgres schema with foreign keys defined caused
  an exception.  Reported by Josh Jore.

- Fetching rows from the cursor for a join with multiple outer joins
  could fail if data was being prefetched.

DEPRECATIONS:

- Alzabo::DriverStatement->next_hash method has been renamed
  next_as_hash.

---------------------------------------------------------------------------

0.70  November 21, 2002

ENHANCEMENTS:

- The exception thrown when you attempt to set a non-nullable column
  to NULL is now an Alzabo::Exception::NotNullable exception, instead
  of an Alzabo::Exception::Params exception.  In the interests of
  backwards compatibility, the former is a subclass of the latter.

- Improved debugging options.  See the new Alzabo::Debug module for
  details.

BUG FIXES:

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

Changes  view on Meta::CPAN


---------------------------------------------------------------------------

0.57 Oct 9, 2001

ENHANCEMENTS:

- When MethodMaker creates 'row_column' methods, these are now get/set
  methods.

- Added new lookup_columns option to MethodMaker (like lookup_tables
  but more flexible).  This replaces the now deprecated lookup_tables
  option.  See DEPRECATIONS and INCOMPATIBILITIES for more details.

- Added the ability to make any storage cache module an LRU.  Simply
  pass an lru_size parameter to Alzabo::ObjectCache when using it and
  the storage module will be an LRU cache.

- Documented Alzabo's referential integrity rules in Alzabo.pm
  (perldoc Alzabo).

- Added section on optimizing memory usage to Alzabo::FAQ.

- Alzabo::Runtime::Schema->join now takes a parameter called
  'distinct'.  This is useful in situations where you are joining
  between several tables but don't want rows back from all of them.
  In that case, it is possible that you could end up getting more
  duplicates than you need.  This parameter can help you eliminate
  those.

- Add the following Alzabo::Schema methods: begin_work, rollback,
  commit, run_in_transaction.

- If you have GraphViz installed the schema creator can now use it to
  show you a graph of your schema.

BUG FIXES:

- Fix handling of binary attribute for MySQL columns.  Generated SQL
  for creating/altering these columns may have been invalid
  previously.

- The rules were not catching an attempt to create a CHAR/VARCHAR
  column with no length (MySQL).

- Fixed bug that caused limit to not work when there was a where
  clause or order_by clause.  Reported by Ilya Martynov.

- Documented row_column option for MethodMaker.

- order_by was ignored when given to the Alzabo::Runtime::Schema->join
  method.  Reported by Martin Ertl.

- When viewing an existing column in the schema creator, the three
  checkboxes at the bottom were always unchecked.

- The test suite has been revamped to use Test::More.  In the process
  some new tests were added and some (gulp) false positives were
  caught.

- The default column value wasn't being escaped in the schema creator.

DEPRECATIONS

- The Alzabo::MethodMaker option 'lookup_tables' has been deprecated.
  Use the new 'lookup_columns' option instead.

INCOMPATIBILITIES:

- Alzabo::ObjectCache::Store modules now expect an object id instead
  of an object for their delete_from_cache method.

- If you specify give the 'all' parameter to MethodMaker,
  'lookup_tables' is no longer included.

---------------------------------------------------------------------------

0.56

Had to become 0.57 cause I was too hasty in uploading to CPAN.  Doh!

---------------------------------------------------------------------------

0.55 Sep 24, 2001

UPGRADE INSTRUCTIONS:

Because of changes to the internal data structures for some objects,
the saved schema files from older versions of Alzabo will no longer
work with this new version.

In the eg/ directory of this distribution, there is a script called
convert.pl that can be used to convert your schemas.

It is _crucial_ that this script be run while you still have your
_current_ version of Alzabo installed.

To repeat, DO NOT INSTALL THE NEWEST VERSION OF Alzabo BEFORE RUNNING
THIS SCRIPT!

Now that we've got that straightened out...

What this script does is read an existing schema and generate code
that you can run after installing the new version of Alzabo.  This
code will recreate your schema from scratch.

It should be noted that this script _will_ reverse the cardinalities
of the relationships in your schema.  See the entries in BUG FIXES
about this.

If you don't like this and want it the old broken way, you can run the
reverse_cardinality.pl script in the eg/ directory on your schemas.
However, you can only do this _after_ installing this new version of
Alzabo.

So the steps you should take are:

1. Backup all of your schema files (by default, these are stored under
   /usr/local/alzabo).

2. Run convert.pl against each schema you have created by doing:



( run in 0.509 second using v1.01-cache-2.11-cpan-97f6503c9c8 )