Alzabo

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

  rt.cpan.org.

ENHANCEMENTS:

- Allow any key starting with "pg_" when connecting a Postgres
  database.  This allows you to pass attributes like "pg_enable_utf8"
  or "pg_bool_tf".  Prompted by a discussion with Boris Shomodjvarac.


0.86  December 22, 2004

BUG FIXES:

- Allow a UNIQUE constraint as a column attribute for MySQL.

ENHANCEMENTS:

- It is now possible to use a single Alzabo schema object to create
  and access multiple copies of that schema in an RDBMS.  This is done
  by setting the "schema_name" parameter whenever calling a method
  that accesses the RDBMS.

  This feature has a bad interaction with the way internal schema
  diffs are generated, however.  Please see the "MULTIPLE COPIES OF
  THE SAME SCHEMA" section in Alzabo::Intro for details.

- The Alzabo::Runtime::Row->update() method now returns a boolean
  indicating whether any changes were actually made.  Patch by Eric
  Waters.


0.85  October 12, 2004

BUG FIXES:

- The DECIMAL and NUMERIC column types in MySQL were not being treated
  as numeric types.  This meant that you couldn't give such a column
  the UNSIGNED attribute, among other problems.  Reported by Bob
  Sidebotham.

- If a column had CHECK constraints, the Postgres reverse engineering
  failed.  Reported by Ken Miller, fixed by Joshua Jore.

- Insert handles did not include sequenced Postgres columns, causing
  17-insert-handle.t to fail when run against Postgres.  Reported by
  Eric Schwartz.


0.84  September 4, 2004

ENHANCEMENTS:

- Alzabo::MethodMaker will now warn you when you it creates a method
  that overrides a parent class's method.  This can cause problems
  when you override the table class's name() method with one that
  returns a column object.


BUG FIXES:

- Make Alzabo::Create::Schema->delete work under taint mode.  Reported
  by Dana Hudes.

- Improve Alazbo::PostgreSQL docs, specifically mentioning that if you
  create a Postgres schema with mixed or upper case table names, you
  need to do $schema->set_quote_identifiers(1) for any DML SQL to
  work.

- The Alzabo::Runtime::Row->is_potential method didn't exist.

- The caching had a very nasty interaction with reverse engineering
  that could cause data loss (of foreign keys) when the "sync with
  backend" functionality was called from the Mason GUI.  There may
  have been other bugs as well.  This was fixed by not caching reverse
  engineered schemas, which is somewhat of a hack.

  Anyone using the Mason GUI with MySQL is encouraged to upgrade
  because of this bug.


0.83  June 9, 2004

MISCELLANEOUS:

- I got fed up with the instability of CVS on Sourceforge, and am now
  using a Subversion repository I host myself.  See "source" page on
  www.alzabo.org for details.


ENHANCEMENTS:

- All SQL-generating methods for the Alzabo::Runtime::Schema and
  Alzabo::Runtime::Table classes now accept a "quote_identifiers"
  parameter, which allows you to turn this on for a single query.

- Improved handling of MySQL's "default defaults" when reverse
  engineering or comparing two schemas, so that the code doesn't
  generate ALTER TABLE statements that don't do anything.

- Make many Params::Validate specs into constants, which may improve
  speed a bit, and may affect memory usage under mod_perl.  This is
  probably a useless micro-optimization, though.


BUG FIXES

- Make sure generated SQL for Postgres schema diffs does not include
  dropping & adding the same FK constraint more than once.

- Reverse engineering works with Postgres 7.4.  Thanks to Josh Jore
  for this big patch.  Hopefully this won't break anything for
  Postgres 7.3 ;)

- The Alzabo::Column->is_time_interval method was misspelled, and so
  did not work at all.  Patch from Josh Jore.

- With Postgres 7.4, the DBI tables method always includes system
  tables, so we have to filter these out in the
  Alzabo::Driver::PostgreSQL->tables method.  Patch from Josh Jore.

- Make the is_date & is_datetime method consistent across various

Changes  view on Meta::CPAN

- When creating a relationship between tables in the schema creator,
  you can now let Alzabo figure out which columns to use instead of
  choosing them yourself.  For most relationships, Alzabo will simply
  do the right thing, adding a column to one of the tables as needed.

- The problems running the tests with Postgres should now be fixed.

- Fix stupid and inefficient internal handling of "SELECT DISTINCT"
  queries.  Now Alzabo simply lets the database handle this, the way
  it should have in the first place.

- The Alzabo::Runtime::Schema and Alzabo::Runtime::Table ->function
  and ->select methods now allow you to select scalars so you can do
  things like SELECT 1 FROM Foo WHERE ... in order to test for the
  existence of a row.

- Added Alzabo::Table->primary_key_size method, which indicates how
  many columns participate in the table's primary key.

- Added Alzabo::Runtime::Schema->row_count.  Suggested by Daniel
  Gaspani.

- Alzabo now detects older versions of schemas and transparently
  updates them.  This will work for all schemas created with version
  0.55 or later.

  See the section titled "Backwards Compability" in Alzabo.pm for more
  details.

- Added comment attribute for tables, columns, and foreign keys.

- Add VARBIT and TIMESTAMPTZ as legal types for Postgres.

- Handle SERIAL columns in Postgres better.  Use the sequence Postgres
  creates for the columns rather than making our own and just insert
  undef into new rows for that column.

BUG FIXES:

- Adding a column that is not-nullable or has a default to a table
  under Postgres was causing an error with Postgres 7.2.1.  It seems
  likely that with earlier versions of Postgres, this was simply
  failing silently.  Patch by Daniel Gaspani.

- Fixed buggy handling of joins that had a table with a multi-column
  primary key as the "distinct" parameter.

- Calling the Alzabo::Runtime::Schema->join method with no 'select'
  parameter and a 'join' parameter that was an array reference of
  array references would fail.

- Avoid an uninit value in Alzabo::MethodMaker.  Reported by Daniel
  Gaspani.

- If you created a cursor inside an eval{} block, the cursor contained
  an object whose DESTROY method would overwrite $@ as it went out of
  scope when the eval block exited.  This could basically make it look
  like an exception had disappeared.  Thanks to Brad Bowman for an
  excellent bug report.

- Loading a schema failed in taint mode.  This was reported ages ago
  by Raul Nohea Goodness and dropped on the floor by me.  My bad.

- The schema creator's exception handling was a little bit buggered up
  when handling Alzabo::Exception::Driver exceptions.

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

0.64 Mar 27, 2002

ENHANCEMENTS:

- Added potentially useful script, alzabo_to_ascii, in eg/ dir.

- Ask for port when setting up tests.

- Turn on stacktraces for all Alzabo::Exception objects.

- Removed the deprecated "lookup_tables" option from
  Alzabo::MethodMaker.

- Removed the deprecated next_row methods from the various cursor
  classes.

- Removed the deprecated Alzabo::Runtime::Table->func method.

- Major changes to how joins are done.  It is now possible to mix
  together various sorts of outer joins in a single query.  In
  addition, it is now possible to specify a foreign key that should be
  used when joining two tables.

- The "tables" parameter has been renamed as "join".

- The Alzabo::Create::Schema->right_outer_join and
  Alzabo::Create::Schema->left_outer_join methods have been removed.
  Use the ->join method instead, which can now be used to do outer
  joins as well, via:

    $schema->join( join => [ left_outer_join => $foo, $bar ], ... )

- The functionality of Alzabo::Runtime::OuterJoinCursor has been
  merged into Alzabo::Runtime::JoinCursor.

- Alzabo::Exception::Driver->bind now returns an array reference, not
  an array.

BUG FIXES:

- Fix failure to load schema objects from file when $\ is set to
  something like "\n".  Reported by Brad Bowman.

- Fixed Postgres reverse engineering to work with slightly changed
  system tables in 7.2.

- Fix handling of table alterations for postgres.  Temp tables were
  being created but not dropped and the data saved in the temp table
  was not being restored to the real table.  Also, Alzabo was trying
  to create sequences again when altering tables Based mostly on a
  patch from Daniel Gaspani.

- Fix handling of primary key changes for Postgres (I'm still not sure



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