Dave Rolsky




Changes for version 0.65

  • 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.
  • The Alzabo::Create::Schema->add_relation method has been renamed as Alzabo::Create::Schema->add_relationship.
  • 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