0.731 (06.12.2006) - John Siracusa <siracusa@mindspring.com>

    * Fixed a database handle leak in the get_objects_iterator() method.
      (Reported by Martin Rubli)
    * Documented the changes_only parameter to the save() and update()
      methods.  (This feature was actually implemented in version 0.73, but 
      I forgot to document it.)
    * The class_for() metadata method may now be called as a class method,
      with some caveats.

0.73 (06.07.2006) - John Siracusa <siracusa@mindspring.com>

    * The new setup() method is now the officially recommended way to set up
      class metadata.
    * Updated the documentation and the generated Perl code to use the
      new setup() method.
    * Related classes are now loaded automatically by default.  Added the
      auto_load_related_classes metadata attribute to control this behavior.
    * Added the pk_columns() alias for the primary_key_columns() method.
    * Added insert_or_update() and insert_or_update_on_duplicate_key()
      helper methods.  (Suggested by Guillermo Roditi)
    * The Loader now automatically skips tables without primary keys.
    * Moved some database introspection code to a new version of Rose::DB, 
      which this version of Rose::DB::Object now requires.
    * Non-null character columns are now detected correctly in Informix.
    * Fixed many bugs related to explicit and auto-detected column defaults.
    * Corrected the return value of Rose::DB::Object::Cached's load() method
      to match that of the standard load(). (Reported by Randal Schwartz)
    * Fixed a bug that caused chkpass columns to be erased after some save()s.
      (Reported by Cees Hek)
    * Added an option to use InnoDB with MySQL in the benchmark suite.

0.727 (05.24.2006) - John Siracusa <siracusa@mindspring.com>

    * Fixed a bug that caused custom primary key sequences to be improperly 
      configured in the code generated by the perl_class_defintion() method.
      (Reported by Ethan Rowe)
    * Fixed a bug that caused false boolean values to be ignored when an
      object was loaded, modified, and then saved.  (Patch by Cees Hek)

0.726 (05.17.2006) - John Siracusa <siracusa@mindspring.com>

    * Fixed incorrect skip count in t/spot-check-07.t

0.725 (05.17.2006) - John Siracusa <siracusa@mindspring.com>

    * Fixed a bug that caused self-referential many-to-many relationships to
      fail during cascaded save() operations.  (Reported by Michael Drozdov)
    * The test suite now requires DBD::SQLite version 1.11 or later.
    * Modified auto-init system to account for custom FetchHashKeyName
      DBI settings.

0.724 (05.11.2006) - John Siracusa <siracusa@mindspring.com>

    * Added the replace_column() Metadata method.
    * The add_now and add_on_save relationship methods now return
      the number of items added when called in scalar context and 
      the list of items added when called in list context.
      (Suggested by Jesse Brown)

0.723 (05.07.2006) - John Siracusa <siracusa@mindspring.com>

    * Fixed a bug that caused Rose::DB::Object::Cached objects
      to stay in the cache after being delete()d.
    * Added clone() and clone_and_reset() Helper methods.
    * The tutorial now recommends "use base ..." over direct modification
      of @ISA in order to work better with circular relationships.
    * Generated Perl code now uses "use base ..." for the same reason.
    * Simplified object destruction, delegating all database object
      clean-up to Rose::DB.

0.722 (04.27.2006) - John Siracusa <siracusa@mindspring.com>

    * Really remove Clone::PP this time...

0.721 (04.27.2006) - John Siracusa <siracusa@mindspring.com>

    * Improved and documented metadata inheritance behavior.

0.72 (04.19.2006) - John Siracusa <siracusa@mindspring.com>

    * Many reference-count bugs fixed, including several that could cause 
      database handles to leak.
    * Fixed a bug that could cause "empty" sub-objects to be created when
      processing certain with_objects parameters.
    * Improved the accessor/mutator methods for these column types: set, 
      array, and boolean.
    * Changed the BigInt and BigSerial column classes to use normal Perl
      scalars instead of Math::BigInt objects when perl has been compiled 
      to use native 64-bit integers.  (Suggested by Jesse Brown)
    * Added the inject_results Manager parameter to bypass the standard
      object creation mechanism in cases where it's the dominant factor
      in overall performance.

0.71 (04.14.2006) - John Siracusa <siracusa@mindspring.com>

    * Correctly clear the "in the database" state flag when a 
      speculative load fails because the object was not found.
      (Reported indirectly by Svilen Ivanov)
    * Changed how multi-table queries are formulated for SQLite in 
      order to make the new DBD::SQLite version (1.12) happy.
    * Fixed errors in the epoch column documentation.
    * Fixed some internal method-maker bugs.

0.701 (04.05.2006) - John Siracusa <siracusa@mindspring.com>

    * Removed stray "._*" files from module distribution.

0.70 (04.04.2006) - John Siracusa <siracusa@mindspring.com>

    * Added support for the interval data type.
    * Added support for big integer and serial columns via Math::BigInt.
    * Added explicit support for columns that store a number of seconds
      since the Unix epoch (both integer and fractional).
    * Silenced warning when querying datetime columns with undef values.
    * Fixed a bug in the loader that prevented auto-generated base class
      names from being correctly nested under class_prefix.
    * Fixed a bug that caused duplicate WHERE clauses when a relationship
      name was the same as the foreign table name.

0.691 (03.16.2006) - John Siracusa <siracusa@mindspring.com>

    * Fixed a bug that prevented the Manager from correctly handling
      many-to-one relationships in some situations.  (Reported by 
      Michael Lackhoff)

0.69 (03.12.2006) - John Siracusa <siracusa@mindspring.com>

    * Added Rose::DB::Object::MixIn and Rose::DB::Object::Helpers.
    * Made insert() and update() part of Rose::DB::Object's public API.
    * Fixed typos in some auto-initialization error messages.
    * Improved checks for MySQL transaction support in the test suite.

0.681 (02.16.2006) - John Siracusa <siracusa@mindspring.com>

    * Removed debugging trigger accidentally left in the 0.68 release.

0.68 (02.16.2006) - John Siracusa <siracusa@mindspring.com>

    * Added support for literal query values using scalar references.
    * Added translation of undef to the inline keyword NULL in 
      multi-value query operations.  (Reported by Teodor Zlatanov)
    * Added the default_load_speculative() metadata attribute.  
      (Suggested by Teodor Zlatanov)
    * Added a referential_integrity() attribute to foreign keys and 
      ?-to-one relationships.  (Suggested by Teodor Zlatanov)
    * Corrected some errors in the documentation and added more details
      on the auto-initialization of relationships.

0.67 (02.07.2006) - John Siracusa <siracusa@mindspring.com>

    * Added the ability to directly set attributes in map records
      when saving the parent object.  (Suggested by Bruno Czekay)
    * Slightly rearranged and added to the tutorial.

0.66 (02.02.2006) - John Siracusa <siracusa@mindspring.com>

    * Disabled implicit primary table sort clause in the Manager when 
      only fetching rows from a single table.
    * Allow multiple pre_init_hook()s in the loader and metadata object.
    * Improved auto-initialization of many-to-many relationships.
    * Added with_relationships, with_foreign_keys, with_unique_keys, db,
      and db_class parameters to make_classes() and the loader object.
    * Renamed some obscure convention manager methods and altered the
      default behavior of the is_map_class() method slightly.

0.65 (01.27.2006) - John Siracusa <siracusa@mindspring.com>

    * More MySQL 5 bitfield fixes.  (Reported by Svilen Ivanov)
      Important note: if you are using MySQL 5.0.3 or later and you
      have one or more BIT columns in a given table, you MUST call
      meta->allow_inline_column_values(1) when setting up the 
      Rose::DB::Object-derived class that fronts the table.
    * Added missing "use ..." statements to the code generated by
    * Fixed a bug that prevented certain kinds of self-referential
      relationships from being initialized properly.  (Reported by
      Bruno Czekay)

0.64 (01.19.2006) - John Siracusa <siracusa@mindspring.com>

    * Worked around yet more SQLite ORDER BY bugs.
    * Improved the column trigger implementation.
    * Added support for MySQL 5's brain-dead new BIT column type.  Classes
      must allow_inline_column_values(1) to use it due to the inability of
      DBD::mysql to bind BIT values correctly without explicit calls to
      DBI's bind_param() method.
    * Use alternate strategies for extracting foreign key information from
      MySQL 5 because the old way no longer works reliably.

0.63 (01.15.2006) - John Siracusa <siracusa@mindspring.com>

    * Made the with_map_records Manager argument work in the
      manager_args list for relationships.
    * Added the generate_manager_class_name() method to the loader.
    * Added the auto_manager_class_name() method to convention manager, 
      and made the loader delegate to it.

0.62 (01.06.2006) - John Siracusa <siracusa@mindspring.com>

    * Fixed a make_modules() bug that caused incorrect init_db() methods
      to be created in some cases.  (Reported by Sean Davis)

0.61 (01.05.2006) - John Siracusa <siracusa@mindspring.com>

    * Added "select" parameter to the Manager which accetps an explicit
      list of columns to be selected.
    * It's now possible to filter based on columns that are not selected
      as part of a Manager query.
    * Extra parameters can now be passed to the method created by
    * Fixed several bitfield column accessor method bugs.  (Reported by 
      Svilen Ivanov)
    * The loader's make_modules() method now correctly creates *.pm files
      for auto-generated base classes.  (Reported by Sean Davis)

0.601 (01.01.2006) - John Siracusa <siracusa@mindspring.com>

    * Fixed some incorrect deep join tests.
    * Reduced the number of Postgres database connections used in the test
      suite in order to avoid hitting Postgres's default connection limit.
    * Fixed the DBI benchmark tests broken by the last release.
    * Uncommented some sections of the benchmark script that were
      accidentally left commented-out in the last release.

0.60 (12.31.2005) - John Siracusa <siracusa@mindspring.com>

    * Added arbitrary-depth auto-joins to the Manager using a "dot-chained"
      syntax (e.g., vendor.regions.code)
    * Added make_modules() method to the loader.
    * Added pre_init_hook() method to metadata objects and the loader.
    * Added overflow attribute to control the behavior when a scalar, 
      character, or varchar column value is too long.  Possible values
      are "fatal" (the default), "truncate", and "warn".
    * Serial columns are now detected correctly even when DBI returns a 
      column type of integer or bigint.  (Reported by Cees Hek)
    * Added support for bigserial columns.
    * Enum columns now have their list of valid values printed correctly
      by the perl_hash_definition() method.  (Reported by Juan Camacho)      
    * Fixed a bug that caused the loader to trip over mixed-case unique 
      keys in MySQL databases. (Reported by Juan Camacho)
    * Force MDY dates in Postgres in the test suite, just in case the user
      has European dates configured.  (Reported by Cees Hek)
    * Fixed numerous Postgres 7.x bugs.  (Reported by Cees Hek)
    * Modified the benchmark suite to further confine each module to its
      own private set of database rows in order to eliminate the influence
      of run order during the tests.
    * Worked around SQLite ORDER BY bugs in order to make the test suite
      function correctly.

0.59 (12.19.2005) - John Siracusa <siracusa@mindspring.com>

    * Added in_array, any_in_array, and all_in_array query operators
      for filtering on Postgres array columns.
    * Fixed a bug that caused certain method overrides to fail when
      using a custom metadata class with the auto-initialize feature.
      (Reported by Svilen Ivanov)

0.58 (12.16.2005) - John Siracusa <siracusa@mindspring.com>

    * Added auto-detection of multiple sequence-based primary 
      key columns and primary keys with one or more non-sequence-
      based columns.
    * Added support for schema and catalog overrides.
    * Added tests for db migration with forced and default schemas,
      multiple sequence-based primary key columns, and primary keys
      with one or more non-sequence-based columns, migrating to and
      from databases with and without sequence support.  (Whew!)
    * Added a summary of the default conventions to the 
      Rose::DB::Object::ConventionManager documentation.

0.57 (12.04.2005) - John Siracusa <siracusa@mindspring.com>

    * Fixed broken custom convention manager support in the loader.

0.56 (12.03.2005) - John Siracusa <siracusa@mindspring.com>

    * Updated required Rose::DB version.  The 0.55 release was incorrect.

0.55 (12.03.2005) - John Siracusa <siracusa@mindspring.com>

    * Added get_objects_from_sql() and make_manager_method_from_sql()
      Manager methods.
    * Made the use of prepare_cached() optional everywhere.  It's on
      by default in Rose::DB::Object, but off by default in Manager.
      Class data determines the defaults.
    * Added enum column type.

0.54 (11.30.2005) - John Siracusa <siracusa@mindspring.com>

    * Added SQLite support.
    * Improved auto-detection of primary key sequence names.
    * Made primary key sequence names configurable.
    * Added the "with_map_records" Manager parameter used to fetch map
      records when auto-joining through a "many to many" relationship.
    * Fixed a bug in the MySQL foreign key auto-init system.
      (Reported by Bernhard Graf)
    * Fixed a bug in the column type class customization system that
      caused it to fail when combined with auto-initialization.
      (Reported by Bernhard Graf)
    * DBI 1.40 or later is now required.

0.53 (11.22.2005) - John Siracusa <siracusa@mindspring.com>

    * Improved handling of table and column names that use 
      reserved words.

0.52 (11.21.2005) - John Siracusa <siracusa@mindspring.com>

    * Fixed bugs in loader when using a DSN instead of a db.

0.51 (11.20.2005) - John Siracusa <siracusa@mindspring.com>

    * Added auto-initialization of relationships.
    * Added loader.

0.50 (11.17.2005) - John Siracusa <siracusa@mindspring.com>

    * Added optional lazy-loading of column values.
    * Long-overdue version number bump.

0.081 (11.15.2005) - John Siracusa <siracusa@mindspring.com>

    * Tutorial added.

0.080 (11.14.2005) - John Siracusa <siracusa@mindspring.com>

    * Added column triggers for get, set, load, save, inflate, and deflate.
    * Added support for new argument types to relationship methods.
    * Added a named, configurable map for convention manager classes.
    * Added perl_manager_class() and make_manager_class() meta methods.
    * Many bug fixes to datetime column methods, cross-database migration,
      and the auto-init system.

0.079 (10.25.2005) - John Siracusa <siracusa@mindspring.com>

    * Fixed bugs that caused auto-inited many-to-many relationships
      to be inadequately fleshed-out under some circumstances.

0.078 (10.24.2005) - John Siracusa <siracusa@mindspring.com>

    * Added page and per_page manager parameters for the truly lazy.
    * Fixed a bug caused by a conflict between the convention manager
      and the legacy foreign key name generator.

0.077 (10.20.2005) - John Siracusa <siracusa@mindspring.com>

    * Added convention manager.
    * Added "distinct" and "fetch_only" manager parameters.
    * Added support for foreign key and relationship names as
      column prefixes in manager query parameters and sort_by
    * Changed manager and query builder to default unprefixed
      ambiguous columns to belong to the primary table ("t1").
    * Fixed a bug that caused make_methods() to fail for "... to one"
      relationships that have no corresponding foreign key.
    * Fixed a bug in QueryBuilder that prevented the ability to check
      for null columns.
    * Added the ability to query columns that are not SELECTed.

0.076 (10.05.2005) - John Siracusa <siracusa@mindspring.com>

    * Fixed a bug that caused incorrect counts in get_objects_count()
      when using the require_object parameter with "... to many" 
    * Added bulk update and delete methods to Manager.
    * Added cascaded delete, plus a plea in the documentation for users
      to do this in the database instead.
    * Added "many to one" relationship and made it the new default
      relationship type for foreign keys.
    * Added *_now and *_on_save method types for foreign keys and
      "... to one" relationships.
    * Made get_set_on_save and delete_on_save the default auto method 
      types for foreign keys and "... to one" relationships.
    * load() now returns the object itself on success, which allows
      for the convenient $obj = MyObject->new(id => 123)->load;
    * save() now returns the object itself on success, which allows
      for the convenient $obj = MyObject->new(id => 123)->save;

0.075 (09.19.2005) - John Siracusa <siracusa@mindspring.com>

    * Added support for "many to many" relationships to Manager's
      "with_objects" and "require_objects" parameters.
    * Corrected a bug that could cause missing sub-objects when
      using the Manager's "with_objects" and "require_objects" 
    * Added warning for doing multiple LEFT OUTER JOINs that could
      cause a geometric explosion of redundant rows.
    * Added the "multi_many_ok" parameter to Manager to suppress 
      the warning described above.
    * Forced inner joins when fetching foreign keys that have
      key columns that are all NOT NULL.
    * Added a few more sanity checks to class setup which, in turn,
      helped me to find and fix a few bugs in the test suite.

0.074 (09.15.2005) - John Siracusa <siracusa@mindspring.com>

    * Repurposed the "with_objects" Manager parameter to do explicit
      LEFT OUTER JOINs instead of implicit inner joins.
    * Added "require_objects" Manager parameter to fill the old role of
      the "with_objects" parameter.
    * Documented new restrictions associated with the more sensible
      "with_objects" and "require_objects" parameters.
    * Added *_sql comparison operators to QueryBuilder, allowing inline
      SQL.  (Requested by Uwe Voelker.)
    * Removed restriction on aliasing primary key columns.
    * Fixed bug in Manager that caused fetched objects to be inserted 
      instead of updated on save().  (Reported by Uwe Voelker.)
    * Corrected a misspelled method name in Rose::DB::Object::Cached.
      (Reported by David Glass)
    * Updated benchmark suite to include "one to many" search tests.

0.073 (09.09.2005) - John Siracusa <siracusa@mindspring.com>

    * Added deferred method creation for relationships and foreign
      keys in order to make "many to many" relationship setup more
    * Renamed default auto-method type for foreign keys and relationships
      from "get" to "get_set", since technically these foreign objects
      can be set.  They just don't go into the database at that point.
      I'll probably use a different term for that process (e.g., "add")
    * Some POD and test fixes.

0.0721 (09.08.2005) - John Siracusa <siracusa@mindspring.com>

    * Fixed incorrect method names in Numeric column type.
    * Added tests to prevent the above error in the future.

0.072 (08.31.2005) - John Siracusa <siracusa@mindspring.com>

    * Added "get" and "set" interfaces to all default column method makers.
    * More POD fixes.

0.071 (08.30.2005) - John Siracusa <siracusa@mindspring.com>

    * POD fixes.

0.07 (08.30.2005) - John Siracusa <siracusa@mindspring.com>

    * Added rudimentary "many to many" relationship support.
    * Restructured method-making system to support extensible method
      types for each kind of thing that makes methods.
    * Added "get" and "set" interfaces to the scalar method maker.

0.0692 (08.20.2005) - John Siracusa <siracusa@mindspring.com>

    * POD fixes.

0.069 (08.20.2005) - John Siracusa <siracusa@mindspring.com>

    * Whoops, fixed manifest to repair a botched 0.068 release.

0.068 (08.19.2005) - John Siracusa <siracusa@mindspring.com>

    * Enabled multiple joins with the same table in the manager,
      provided that each occurrence of multi-joined table has the
      same Rose::DB::Object class fronting it.
    * Added support for the "alias" parameter to hash-style column
    * Added "relationship" objects.
    * Fixed a bug that caused nearly everything to fail if a 
      column_name_to_method_name_mapper was used.
    * Moved some class methods out of the object methods section of the
      documentation, where they shouldn't have been in the first place.

0.0671 (08.15.2005) - John Siracusa <siracusa@mindspring.com>

    * Fixed more MySQL case sensitivity bugs.  (Thanks Uwe!)
    * Changed objects_by_key query_args parameter to be an array ref
      instead of a hash ref to match the manager change from long ago.
    * Updated makemethods.t to use MySQL if Postgres is not available.

0.067 (08.14.2005) - John Siracusa <siracusa@mindspring.com>

    * Fixed more MySQL bugs related to foreign keys, timestamps,
      and boolean support in MySQL 4.0.x.

0.066 (08.12.2005) - John Siracusa <siracusa@mindspring.com>

    * Fixed MySQL case-sensitivity bug.
    * Added case-sensitivity tests for Postgres and MySQL.
    * Added accessor, delete, and search with limit and offset benchmarks.

0.0651 (08.11.2005) - John Siracusa <siracusa@mindspring.com>

    * Moved benchmarks into test directory in an attempt to
      get search.cpan.org to ignore them.

0.065 (08.11.2005) - John Siracusa <siracusa@mindspring.com>

    * Improved the efficiency of manager classes.
    * Added benchmark suite.
    * More POD fixes.

0.064 (08.09.2005) - John Siracusa <siracusa@mindspring.com>

    * Duh, forgot the table name and initialize() call in 

0.063 (08.09.2005) - John Siracusa <siracusa@mindspring.com>

    * Added foreign key auto-initialization for Informix.

0.062 (08.08.2005) - John Siracusa <siracusa@mindspring.com>

    * Changed default error mode to "fatal" for manager class too.

0.061 (08.07.2005) - John Siracusa <siracusa@mindspring.com>

    * Added foreign key auto-initialization for MySQL.

0.06 (08.05.2005) - John Siracusa <siracusa@mindspring.com>

    * Added auto-initialization (finally).
    * Plumped-up unique and primary keys into objects.
    * Changed default error mode to "fatal"
    * Made substantial additions to the documentation.

0.052 (07.22.2005) - John Siracusa <siracusa@mindspring.com>

    * Added make_manager_methods() to Rose::DB::Object::Manager.
    * Corrected Rose::DB::Object::Manager POD.

0.052 (07.22.2005) - John Siracusa <siracusa@mindspring.com>

    * Added make_manager_methods() to Rose::DB::Object::Manager.
    * Corrected Rose::DB::Object::Manager POD.

0.051 (06.22.2005) - John Siracusa <siracusa@mindspring.com>

    * Added abstracted offset parameter to object manager.

0.05 (06.16.2005) - John Siracusa <siracusa@mindspring.com>

    * Moved object cache management further into the metadata object.
    * Enabled auto-generated primary key values for Rose::DB::Object
      objects used with the PostgreSQL database.

0.043 (06.16.2005) - John Siracusa <siracusa@mindspring.com>

    * Added time-based expiration to Rose::DB::Object::Cached.
    * Added catalog attribute to metadata objects.

0.042 (05.04.2005) - John Siracusa <siracusa@mindspring.com>

    * Added not_null attribute to column metadata objects.
    * Removed use of prepare_cached() because it apparently(?)
      can't be used across transactions in Informix.

0.041 (04.22.2005) - John Siracusa <siracusa@mindspring.com>

    * Corrected typo in DatetimeYearToSecond column class.
      (Still need to add tests for those column types...)
    * Added skip_first parameter to get_object_iterator().
    * Added fix to avoid trying to format or truncate undefined 
      dates in datetime columns.

0.04 (04.01.2005) - John Siracusa <siracusa@mindspring.com>

    * Refactored column value parsing.  No, really.

0.031 (03.27.2005) - John Siracusa <siracusa@mindspring.com>

    * Corrected typos and errors in the documentation.

0.03 (03.27.2005) - John Siracusa <siracusa@mindspring.com>

    * Added error_mode methods.
0.023 (03.25.2005) - John Siracusa <siracusa@mindspring.com>

    * Added prepare_*_options (undocumented for now).

0.022 (03.18.2005) - John Siracusa <siracusa@mindspring.com>

    * Fixed POD error that was throwing off search.cpan.org.

0.021 (03.17.2005) - John Siracusa <siracusa@mindspring.com>

    * Added documentation for the "pretty" parameter to build_select()
    * Added support for column value inlining in build_select()

0.02 (03.17.2005) - John Siracusa <siracusa@mindspring.com>

    * Added support for nested boolean logic in queries.

0.013 (03.11.2005) - John Siracusa <siracusa@mindspring.com>

    * Fixed bug in Rose::DB::Object::Std::Metadata that caused the
      number of primary key columns to appear to be zero.

0.012 (03.10.2005) - John Siracusa <siracusa@mindspring.com>

    * Add tests for aliased unique key fix and primary key aliasing.
      Documented constraints on column aliasing.  Fixed version
      numbers in this file.  Deleted version 0.011.

0.011 (03.09.2005) - John Siracusa <siracusa@mindspring.com>

    * Well that was quick.  Fixed copy and paste error that caused
      a failure to load using an aliased unique key column.  Deleted
      version 0.10.

0.01 (03.09.2005) - John Siracusa <siracusa@mindspring.com>

    * Initial release.