Alzabo
view release on metacpan or search on metacpan
- 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.
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 )