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 tutorial.
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
perl_class_definition().
* 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
make_manager_method_from_sql()
* 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
arguments.
* 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"
relationships.
* 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"
parameters.
* 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
developer-friendly.
* 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
definitions.
* 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
perl_class_definition().
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 can't be used
across transactions in Informix. Duh.
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.