Alzabo

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

- Fix reverse engineering of "now()" as default for a column with Pg.


0.89  Jun 20, 2006

ENHANCEMENTS:

- Improved schema diffs for Postgres, particularly in the area of
  comparing two columns. Now we attempt to determine if two columns
  are logically equivalent, even if they might have minor variations
  (INT vs INTEGER type name, 'f' versus 'false' for BOOLEAN default,
  etc.).

- Added Alzabo::SQLMaker->distinct_requires_order_by_in_select for the
  benefit of Pg, which requires that anything in the ORDER BY clause
  show up in the SELECT when you SELECT DISTINCT. This change is
  experimental, and may go away in future versions.

- Removed support for passing order_by and group_by as a hash
  reference. This was deprecated in 0.59.

BUG FIXES:

- When reverse engineering a Postgres schema, Alzabo did not look for
  its own sequences to determine if a column should be marked as
  sequenced.

- Defer FK creation until all other DDL has been executed. This
  ensures that the table to which we're referring will be available.

- When recreating a table during a SQL diff, make this an exception so
  we don't do other column diff/add/drop operations on the same table.

- Fixed a test failure in 07-methodmaker.t when testing with
  Postgres. This failure may not have showed up often because it came
  from a test that depended on the DBMS returning rows in a speific
  order by without specifying an ORDER BY.

- When a Postgres table is renamed, its sequences are also renamed.


0.8801  Mar 13, 2006

BUG FIXES:

- Quoting of PostgreSQL column defaults in DDL SQL was completely
  broken.


0.88  Mar 13, 2006

ENHANCEMENTS:

- Added a new option when creating a column, "default_is_raw", which
  can be used to allow for a function like NOW() as a column default.

- Added an "--automated" option for Build.PL, to force it to just use
  default prereqs. Also added other options to be used with this one,
  see "perl Build.PL --help" for detalis.

- The Alzabo::Driver classes will now transparently reconnect to the
  DBMS if you attempt to use them in a child process after a
  fork. This prevents various problems that can occur if you attempt
  to share a DBI handle between two processes. One notable problem is
  that the parent's DBI handle is closed when the child exits.

- Added support for (VAR)BINARY type columns in MySQL. Request by
  Martin Groenemeyer. RT Ticket #16338.

BUG FIXES:

- Alzabo::Table->foreign_keys_by_table() and foreign_keys_by_column()
  could return the same object more than once when using
  multiple-column foreign keys. Reported by Rainer Rohmfeld. RT Ticket
  #13885.

- Calling connect() on a driver object (via a schema object) with
  different parameters did not reconnect if the existing handle was
  still good. This was explicitly opposite what the docs said the code
  was doing. RT Ticket #17942.

- Fix bug in reverse engineering function indexes in Postgres.  The
  reverse engineering code always ended up thinking all of the columns
  in the table were used in the index.

- Fix failing MySQL test in 03-runtime.t.  The problem was the test,
  not the Alzabo core.  Reported by Alex McLintock.

- Fixed adding too many "=cut" directives in docs generated by
  Alzabo::MethodMaker.

- Fixed SQL generation for the Postgres functions CURRENT_DATE,
  CURRENT_TIME, and CURRENT_TIMESTAMP, which should not have
  parentheses after them.

- Documented that DATE_TRUNC() is a support Pg function in
  Alzabo::SQLMaker::PostgreSQL. RT Ticket #13843.


0.87  May 14, 2005

BUG FIXES:

- Table names in CREATE INDEX statements for Postgres were not quoted.

- Database names in CREATE/DROP DATABASE statements for Postgres were
  not quoted.

- Postgres database names with upper case characters were never being
  detected as being instantiated, which meant Alzabo always tried to
  recreate the schema from scratch.

- ALTER TABLE statements for Postgres left the table name unquoted
  when renaming a column.

- Even if Alzabo::Runtime::Schema->referential_integrity was false,
  Alzabo was still doing referential integrity checking on inserts.
  Reported by Michal Jurosz.

- 19-schema-name.t did not use the user-supplied connection parameters
  and could fail because of this.  Reported by Daniel Puro.

Changes  view on Meta::CPAN

  names are deprecated.

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

0.65 May 16, 2002

INCOMPATIBILITIES:

- Alzabo now uses the natively created Postgres sequence for SERIAL
  columns.  If you have existing Alzabo code with SERIAL columns that
  is using the Alzabo-created sequence, then this release will break
  things for you.  One easy fix is to simply drop the existing
  Postgres-created sequence and recreate it with a new starting number
  one higher than the highest row already in existence.  So if your
  hightest "foo_id" value in the "Foo" table is 500, you would do
  this:

    DROP SEQUENCE foo_foo_id_seq;
    CREATE SEQUENCE foo_foo_id_seq START 501;

- The Alzabo::Table->primary_key method is now context-sensitive,
  returning a single column object in scalar context.

- The data browser is no longer installed, until such time as I can
  rewrite it to be more useful.

DEPRECATIONS:

- The Alzabo::Create::Schema->add_relation method has been renamed as
  Alzabo::Create::Schema->add_relationship.

ENHANCEMENTS:

- Check out the mason/widgets directory for some handy widgets that
  can help integrate Mason and Alzabo in useful ways.  These aren't
  really well-documented yet but may be useful for playing with.  More
  widgets will be included in future releases (I hope).

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



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