Alzabo

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

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

0.49 Jul 18, 2001

BUG FIXES:

- Found out even more missing files from the MANIFEST (all related to
  the schema creation interface).  Fortunately, I just discovered
  Perl's "make distcheck" so this shouldn't happen in the future.

- One link each in the schema creator and data browser were using a
  hard-coded .mhtml extension instead of calling
  Alzabo::Config::mason_extension().  Reported by Barry Hoggard.

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

0.48 Jul 17, 2001

BUG FIXES:

- I was missing yet another file from the MANIFEST.  Thanks to Barry
  Hoggard for helping me out with this.

- Fix a bug in the test number for 03-runtime.t.

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

0.47 Jul 17, 2001

ENHANCEMENTS:

- Make several of the config values settable via the Alzabo::Config
  module.  Suggested by Jared Rhine.

- Transactions should now work under MySQL.  Whether it does anything
  or not depends on the table type you are using.  This needs testing
  though.

BUG FIXES:

- Make sure that index names are not too long.

- Added a missing file to the MANIFEST.  0.46 was missing a needed
  file from the tarball.

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

0.46 Jul 2, 2001

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

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

0.45 Jun 6, 2001

INCOMPATIBILITIES:

- The 'dbm_file' parameter given when loading a syncing module that
  used DBM files (such as Alzabo::ObjectCache::Sync::SDBM_File) has
  been changed to 'sync_dbm_file', because this release includes a new
  cache storage module that uses DBM files as well.

- The schema creator now requires HTTP::BrowserDetect.

- Fix what was arguably a bug in the caching/syncing code.
  Previously, one process could update a row and another process could
  then update that same row.  Now the second process will throw an
  exception.

BUG FIXES:

- Accidentally left debugging turned on in Alzabo::Exceptions.

- The schema creator did not allow you to remove a length or precision
  setting for a column once it had been made.

- Require a length for CHAR and VARCHAR columns with MySQL.

- Add error on setting precision for any column that doesn't allow
  them with MySQL.

- The interaction of caching rows and Alzabo::MethodMaker was not
  right.  Basically, it was determined at compile time whether or not
  to use the cached row class but this needs to be determined at run
  time.  This has been fixed.

- Using the Alzabo::Runtime::Row->rows_by_foreign_key method would
  fail when the column in one table did not have the same name as a
  column in the other table.  Reported by Michael Graham (along with a
  correct diagnosis, thanks!).

Changes  view on Meta::CPAN

- Changed 'id' param to 'pk' for Alzabo::Runtime::Table row_by_pk
  method.  'id' still works, for now, but is deprecated.

- Fix problem where an insert could generate a referential integrity
  exception but still end up in the database.  Note, without
  transactions (in MySQL, for example), there's no way to make the all
  of the referential integrity code work correctly 100% of the time.

- Added new class Alzabo::ObjectCache to make sure that objects stay
  in sync after referential integrity operations happen.  This is now
  the default caching class.  Please make sure to read the docs for
  this new module, particularly if you're running Alzabo under a
  persistent environment where this module can be quite the memory hog
  if not used properly (clear the cache!).

- Fixed breakage in maintenance of referential integrity caused by
  switch to cursors (and me not fixing all the code that expected row
  objects).

- Added Alzabo::Runtime::Cursor base class.

- Added join method to Alzabo::Runtime::Schema.  *EXPERIMENTAL*

- Added Alzabo::Runtime::JoinCursor class.  *EXPERIMENTAL*

- Began conversion of all classes from pseudohash to hash.

- Both schema creator and data browser now respect user choice of
  component extension.

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

0.09

- MAJOR CHANGE: All the Alzabo::Runtime::Row methods that used to
  return lists of rows now return the new Alzabo::Runtime::RowCursor
  object.  This change is a major speed and memory optimization.  It
  does, however, break the old interface.  But its worth it.

- Set autohandlers for schema maker and data browser so that they
  won't inherit from other autohandlers higher up the directory tree.

- Fix bug in Alzabo::Driver which made it so that the one_row_hash
  method always returned a hash with keys.  This caused spurious row
  object to be created in the Alzabo::Runtime::Row class.

- Fix bug in Alzabo::Table::rows_where method where it wasn't handling
  the construct $table->rows_where( where => { foo => undef } )
  properly.

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

0.08

- Lazy column evaluation had made it possible to create an
  Alzabo::Runtime::Row object that did not correspond to any data in
  the database if its table object did specify any rows to prefetch.
  This would have only been discovered later by calling the select
  method on a non-primary key column.  This hole was plugged.

- As a corollary to the above change methods in Alzabo::Runtime::Table
  that produce rows now always return an empty list or undef when the
  rows cannot be made because the specified primary key doesn't exist.
  Previously, the rows_by_where_clause method did this while others
  would cause an exception either during the object creation or later,
  depending upon the situation described above.

- GENERAL NOTE: I probably used exceptions too much, as in the above
  case.  I will probably be making a few more changes like this in the
  future.

- Bug fix in Alzabo::RDBMSRules when making SQL diffs.  Forgot to
  account for new foreign key method names.

- Bug fix related to MySQL auto_increment column and
  Alzabo::Runtime::Table insert method.  Basically, you couldn't
  insert into a table and use its auto_increment feature.

- Alzabo::Table::set_prefetch now makes sure that primary key columns
  are not included.  It simply ignores them but they will not be
  returned by the prefetch method.

- fix bug where some row retrieval methods would fail if not given a
  'bind' parameter.

- Doc bug fix.  Docs for Alzabo::Runtime::Table listed group_by_column
  as simply group.  Of course, this probably only needs to be used by
  Alzabo::Runtime::Row anyway.

- Added Alzabo::Runtime::Table rows_where method.

- Added Alzabo::Runtime::Table all_rows method.

- Documented 'bind' parameter for Alzabo::Runtime::Table
  rows_by_where_clause method.

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

0.07

- Fixed major bugs in Alzabo::Runtime::Table::insert method.

- Fixed bug in Alzabo::Runtime::Row::delete method related to API
  change in 0.06

- Reduce amount of work done in Alzabo::Runtime::Row when referential
  integrity maintenance is set to false.

- Added new method to Alzabo::Runtime::Row: rows_by_foreign_key.  A
  row can now fetch the rows that are related to it automatically.

- Made all Alzabo::Table foreign key object returning methods
  list/scalar context sensitive.  This is useful when you know that
  there is only one foreign key that matches what you are looking for.

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

0.06

- change return value from Alzabo::Index id method to be something
  that can be an actual index name.  This is a bug fix as previously



( run in 1.372 second using v1.01-cache-2.11-cpan-39bf76dae61 )