Rose-DB-Object
view release on metacpan or search on metacpan
* Pre-saved objects now get their foreign key columns hooked up
correctly when passed as arguments to add_on_save methods.
(Reported by George Hartzell)
* ...-to-many related object lists will now be re-fetched on
demand after an add_on_save and a subsequent save().
(Reported by George Hartzell)
0.7722 (09.29.2008) - John Siracusa <siracusa@gmail.com>
* Fixed compatibility with older versions of ExtUtils::MakeMaker.
0.7721 (09.29.2008) - John Siracusa <siracusa@gmail.com>
* Updated distribution metadata for ExtUtils::MakeMaker 6.44.
* Added a column type mapping for MySQL's MEDIUMINT type.
(Reported by Andreas Dewes)
0.772 (09.26.2008) - John Siracusa <siracusa@gmail.com>
* Altered Rose::DB::Object::Cached to override insert() and
update methods. (Suggested by Kevin McGrath)
* The update() method now marks updated objects as being in the
database (see is_in_db() in Rose::DB::Object::Util) (Suggested
by Kevin McGrath)
* The insert_or_update() and insert_or_update_on_duplicate_key()
helper methods now call save() instead of insert() or update()
(passing the appropriate flags to cause an insert or update) in
order also save child objects. (Suggested by Kevin McGrath)
* The set_column_value_modified() function in Rose::DB::Object::Util
now also clears any "db-ready" column value the object may be
holding for that column.
* Added a dirty_columns() helper method (Suggested by jdv79)
0.7713 (09.16.2008) - John Siracusa <siracusa@gmail.com>
* More test skipping fixes.
0.7712 (09.15.2008) - John Siracusa <siracusa@gmail.com>
* Improved detection of broken DBD::SQLite versions.
0.7711 (09.15.2008) - John Siracusa <siracusa@gmail.com>
* Fixed typos in POD.
* Improved test skipping conditions.
* Clarified JSON module version requirements.
0.771 (09.12.2008) - John Siracusa <siracusa@gmail.com>
* Traversal and recursive serialization helper method added.
* Non-persistent columns feature added.
* Made "where" an alias for the Manager's "query" parameter.
(Requested by Ask Bjørn Hansen)
* Documented restrictions on the Manager's "select" parameter.
* Fixed bug that prevented CURRENT_TIMESTAMP from being properly
inlined in queries sent to SQLite. (RT 37224)
* Fixed a memory leak. (Reported by Christopher Laco)
* The "cluck" error mode now correctly calls cluck() rather than
croak(). (Reported by Kevin McGrath)
* Added support for Oracle date/time column keywords.
* Cascaded delete now properly cascades to one-to-one related objects.
(Reported by kittens)
0.770 (05.28.2008) - John Siracusa <siracusa@gmail.com>
* Added "iterator" method type, similar to "find", to OneToMany
and ManyToMany. (Patch by Peter Karman - peknet@gmail.com)
* Updated the Loader documentation to describe an important
consideration when regenerating modules with make_modules().
* Improved error propagation in relationship methods. (Suggested
by Wiggins d'Anconia)
* Skip the interactive part of the test suite when the
AUTOMATED_TESTING environment variable is set.
* Test suite now accounts for versions of DBD::mysql that predate
the mysql_is_auto_increment column attribute.
0.769 (04.01.2008) - John Siracusa <siracusa@gmail.com>
* Improved the default singular/plural conversion rules in the
Convention Manager. (Suggested by David Brownlee)
* Added new join type override syntax for the Manager's with_objects
and require_objects parameters.
* Added column method naming conventions to the Convention Manager.
* Added Manager naming conventions to the Convention Manager and
exposed more Manager-related defaults in the Metadata and Manager
class. (Patch by Bradley C Bailey, modified by John Siracusa)
* Column method names are now allowed at the end of compound Manager
query parameters (e.g., "a.b.method")
* Clarified column/method query parameter documentation.
* PostgreSQL tests are not skipped when DBD::Pg version 2.1.x or 2.2.0
is installed. (Bus error for me in t/deep-joins.t)
0.768 (02.25.2008) - John Siracusa <siracusa@gmail.com>
* Changed mailing list and wiki URLs.
* Fixed the "warn" overflow mode for character columns to carp
instead of croaking. (Reported by John Ingram)
* Refined workaround for http://rt.cpan.org//Ticket/Display.html?id=33193
to apply only to versions that exhibited this bug.
* Added the forget_related() helper method to the "all" export tag.
0.767 (02.15.2008) - John Siracusa <siracusa@gmail.com>
* Added the forget_related() helper method.
* Enhanced and documented the long-dormant "hints" Manager parameter.
* Added a work-around for a DBD::Pg 2.0.0 array/bind_col() bug:
http://rt.cpan.org//Ticket/Display.html?id=33193
* Improved the column method handling for array-reference values
that may be fetched from array columns by DBD::Pg 2.0.0.
* Fixed a bug in the test suite that caused some PostgreSQL tests
to fail if the "chkpass" column type was not installed.
(Reported by Randal Schwartz)
0.7665 (02.08.2008) - John Siracusa <siracusa@gmail.com>
* Fixed a bug that prevented the convention manager's auto_table_name()
method from honoring the tables_are_singular() attribute value.
(Reported by Ben Tilly)
* The new, more correct behavior of Rose::DB 0.739's array column
value parsing and formatting revealed a bug in QueryBuilder's
handling of "(any|all)_in_array" conditions involving empty list
fatal error. (Reported by Philip Dye)
* Multi-columns "select count(distinct ...)" queries now fall back to
count(*) on a subselect in databases that do not support calling count
on multi-argument distinct clauses. (Reported by Derek Watson)
* The auto-init system will now skip PostgreSQL functional indexes when
extracting unique keys. (Reported by Jonathan Vanasco)
* Fixed a bug that caused inner joins to be used inappropriately in
certain cases with many-to-many relationships or when nested joins
are disabled.
* Fixed a bug that caused the auto-init system to fold multiple foreign
keys that reference the same remote key into a single multi-column
foreign key. (Reported by Marlon Bailey)
* Fixed a Manager bug that caused count queries to use incorrect
table aliases when passed empty with_objects or require_objects
array reference values. (Reported by Denis Moskowitz)
* Fixed a bug that prevented relationship and foreign key names from
being resolved when used in nested query parameters.
* Relationship count methods no longer die when the count is zero.
(Reported by Derek Watson)
* Setting enum fields to undef now works correctly. (Reported by Ovid)
* Columns with custom DBI bind attributes are now updated correctly.
(Reported by Derek Watson)
* Epoch columns with zero (0) default values now work correctly.
(Reported by Peter Karman)
* Setting boolean columns to null (undef) now works correctly.
(Reported by Derek Watson)
* Fixed a bug that caused literal query parameters with bind arguments
to become corrupted after their first use.
* Changed the way classes are registered in order to fix a Loader bug
that caused cross-database foreign keys to be erroneously created
when tables with the same names exists in two different databases.
(Reported by Adrian Howard)
* Deleting one-to-one related objects on save now works correctly.
(Reported by Ovid)
* The "find" method for many-to-many relationships now propagates custom
Manager arguments correctly. (Patch by Michael Reece)
* The use_key parameter to load() now dies if an invalid key is passed.
(Reported by Jonathan Vanasco)
0.764 (05.04.2007) - John Siracusa <siracusa@gmail.com>
* Added the strip() helper method.
* Added a "find" method type to many-to-many relationships.
* Added a "count" method type to ...-to-many relationships.
* Added support for nested joins.
* The setup() method now supports a "helpers" shortcut for importing
methods from Rose::DB::Object::Helpers.
* Added the dubious require_primary_key parameter and object attribute
to the Loader. (Requested by Teodor Zlatanov)
* Added two syntaxes for literal SQL to QueryBuilder.
* Added the with_column_triggers attribute to foreign keys and singular
relationships in order to keep columns and related objects in sync.
* Fixed a bug that caused some optional related objects to be improperly
transformed into required objects. (Reported by Ethan Rowe)
* Improved detection of errors when auto-loading related classes.
* Duplicate auto-created map record method names are now detected and
reported as a fatal error.
* Added and documented a return value for add_columns().
* Added module_preamble and module_postamble features to the Loader's
make_modules() method. (Patch by David Christensen)
* Made changes_only, cascade, and prepare_cached arguments to save()
also apply to *_on_save collections.
* Added test and prerequisite version for a Rose::DB bug that
prevented certain reserved words from being detected as primary
key columns in PostgreSQL. (Reported by Fred Cox)
* Baseline Oracle support added to the Loader. (Patch by Teodor Zlatanov)
* The clone() and clone_and_reset() methods now handle missing or
differently named accessor/mutator methods.
* QueryBuilder now supports eq/ne undef for is/is not null comparisons.
* Foreign key columns that are also primary key columns are no longer set
to undef when a foreign object is set to undef. (Reported by Ovid)
* Fixed a bug that caused values not to be checked against the list
of valid values in SET columns. (Reported by Adrian Howard)
* Fixed a bug that caused column (get/)set methods not to return the
correct value when an on_set trigger was applied to the column.
(Reported by Cory Bennett)
* Fixed a bug that caused enum columns to be incorrectly marked as
modified in some circumstances. (Reported by Cory Bennett)
* Fixed a bug that caused inflate/deflate triggers to fail under some
circumstances. (Patch by Cory Bennett)
0.763 (02.24.2007) - John Siracusa <siracusa@gmail.com>
* Re-enabled the DBD::SQLite 1.13 work-around in the test suite, which
I temporarily disabled to test a 1.14 candidate and then forgot to
re-enable before the 0.762 release.
0.762 (02.24.2007) - John Siracusa <siracusa@gmail.com>
* Fixed an unparseable version number in MakeMethods::BigNum
that was causing CPAN and associated tools to choke.
0.761 (02.23.2007) - John Siracusa <siracusa@gmail.com>
* Added the ability to specify a unique key by name in calls to load().
* Added support for query_args and other Manager parameters to
one-to-one and one-to-many relationships.
* Added a "find" method type to one-to-many relationships for
ad-hoc queries.
* Added support for Informix's "datetime year to month" column type.
* Updated the dbh() method to be a more conventional proxy for ->db->dbh().
* The get_objects() and delete_objects() Manager methods now accept a lone
arrayref or hashref argument as a short way to specify the value of the
"query" parameter.
* Eliminated warning in the BigNum column type when the GMP math library
is not installed.
* Added a double precision column type and class for PostgreSQL.
* Fixed a bug that caused cascaded save() to fail to cascade beyond
a set-on-save related object.
* Improved reporting of errors in auto-loaded related modules.
* Fixed a bug that caused numeric columns to have invalid length
restrictions. (Reported by Fred Cox)
* Fixed many incorrect skip counts in the test suite when running against
PostgreSQL without CHKPASS support.
0.760 (01.16.2007) - John Siracusa <siracusa@gmail.com>
* Fixed a mistake in the test suite that caused spurious failures
when testing against Pg without the CHKPASS column type installed.
(Reported by Randal Schwartz)
0.759 (01.15.2007) - John Siracusa <siracusa@gmail.com>
* Oracle support improved significantly.
* Added a "state" export tag to Rose::DB::Object::Util.
* Fixed a bug that caused the Manager to unconditionally alias selected
columns in some situations.
* Added the (dubious) ability to set a list of filtered one-to-many items.
* Fixed a database handle leak in the iterator class.
(Reported by Peter Karman)
0.758 (11.29.2006) - John Siracusa <siracusa@gmail.com>
* Added the get_objects_iterator_from_sql() Manager method and an
iterator option for the make_manager_method_from_sql() method.
(Suggested by George Hartzell)
* Turned off unique column aliases by default and added the
unique_aliases Manager parameter to turn them back on.
* Fixed some circular references that could have caused database
connections to leak. (Reported by Bruno Czekay)
0.757 (11.22.2006) - John Siracusa <siracusa@gmail.com>
* Added load_or_save() helper method.
* Added support for MySQL's SET data type.
* Fixed some SET and ARRAY bugs in QueryBuilder.
* Fixed a bug that caused QueryBuilder to choke on inflated
BigInt columns. (Reported by Jud)
* Modified the rules that govern metadata inheritance in order to
allow multiple layers of abstract base classes.
* The Loader will now pick up custom convention manager classes
from the specified base class.
0.756 (10.29.2006) - John Siracusa <siracusa@gmail.com>
* Changed the interaction and behavior of the metadata object's
foreign_key_name_generator() method and the convention manager's
auto_foreign_key_name() method to avoid some name conflict bugs
and create a more sensible flow for foreign key naming.
(Suggested by Graham Barr)
* Added has_modified_children() has_loaded_related() methods to
Rose::DB::Object::Util.
* Added an init_with_column_value_pairs() helper method. (Requested
by Jonathan Vanasco)
* Modified child objects are now correctly detected and handled by
cascading save(). (Reported by Lucian Dragus)
* Fixed a bug that caused save(changes_only => 1, cascade => 1) to
fail in cases where a child object set a key column in the parent
object. (Reported by Lucian Dragus)
* Fixed a bug in the Manager that caused the with_objects parameter
to be ignored when the count_only parameter was set. (Reported
by Uwe Voelker)
* The column_values_as_*() helper methods no longer require the
column_value_pairs() helper to also be imported. (Reported
by Jonathan Vanasco)
* Fixed a bug caused by blank lines in JSON and YAML output.
(Patch by Jonathan Vanasco)
* Setting a fixed-length character column to undef now works
correctly.
* Fixed a bug that caused the benchmark suite to fail under SQLite
due to a mishandling of the query_is_sql Manager parameter.
* Corrected some typos in the documentation.
0.755 (10.20.2006) - John Siracusa <siracusa@gmail.com>
* Fixed a bug that could cause ...-to-many accessors with
custom sort orders to fail in some situations.
* Removed some imported functions to correctly reflect the
documented list of reserved method names. (Reported by
Uwe Voelker)
* Added the allow_empty_lists parameter to the Manager's
get_objects() method. (Suggested by Ask Bjørn Hansen)
* Fixed bugs in the query hints implementation.
0.754 (10.06.2006) - John Siracusa <siracusa@gmail.com>
* Added an optional db argument to the prime_all_caches() and
prime_caches() metadata methods. (Suggested by Jonathan Vanasco)
* Improved and documented the way that unique keys are selected by
the load() method. (Patch by Graham Barr)
* Fixed a bug that caused foreign key column lookups to fail in
PostgreSQL when using the unicode database encoding.
* Invalid dates are now detected in the query portion of Manager calls.
* The test suite now refuses to run SQLite tests if the buggy
DBD::SQLite version 1.13 is installed.
* Fixed some typos in the documentation.
0.753 (09.17.2006) - John Siracusa <siracusa@gmail.com>
* Improved the convention manager's plural_to_singular() method.
* Added "match", "imatch", and "similar" operators to QueryBuilder.
(Patch by Lucian Dragus)
* The Loader will now check if a db_class "isa" Rose::DB already
before attempting to load it. (Reported by Randal Schwartz)
* The auto-initialization system will now correctly connect one-to-one
relationships with foreign keys when appropriate.
* Fixed a bug that caused the update_objects() and delete_objects()
Manager methods to fail to extract the object_class value from the
object_class() method. (Patch by Graham Barr)
* Fixed a bug that caused "like" and other match operators to be
provided with incorrectly formatted arguments when used with
fixed-length CHAR columns. (Reported by Ask Bjørn Hansen)
0.752 (09.06.2006) - John Siracusa <siracusa@gmail.com>
* The select parameter to the Manager's get_objects() method now
accepts tN.* column specifiers. (Suggested by Jonathan Vanasco)
* Added auto_relationship_name_*() methods to the convention manager.
* Added rudimentary name conflict resolution abilities to the
convention manager's auto_*_name() methods.
* Altered the meaning of the time column's precision() attribute
and added a scale() attribute to take over the previous meaning.
* Renamed the interval column's precision() attribute to scale().
* Aliased columns now work correctly with the select parameter to
Manager's get_objects() method.
* Fixed a bug that caused the get_objects() Manager method to fail
to extract the object_class value from the object_class() method.
* Fixed a bug that caused Informix datetime column values to have
incorrect "largest qualifier" values for values other than "year."
* Eliminated an "uninitialized value" warning when running under
mod_perl (Patch by Graham Barr)
0.751 (08.29.2006) - John Siracusa <siracusa@gmail.com>
* The Loader is now much, much faster when loading many tables.
* Added a tables_are_singular() method to the default ConventionManager.
* Improved detection of ambiguous columns in QueryBuilder.
* Removed a potentially dubious optimization of the with_objects
argument to the get_objects() and get_objects_count() methods.
* Added support for auto-initialization in setup() calls.
* Added prime_caches(), auto_prime_caches(), and prime_all_caches()
Metadata methods to help increase shared memory when running under
mod_perl and other similar environments.
* The Loader's include_tables and exclude_tables attributes now accept
references to arrays of table names as well as regular expressions.
* The Loader's include_tables and exclude_tables attributes are now
case-insensitive by default.
* Fixed a bug that caused save() with sub-objects to fail in some cases.
(Reported by Wiggins d'Anconia)
* Added examples of the add_on_save relationship methods to the tutorial.
0.75 (08.10.2006) - John Siracusa <siracusa@gmail.com>
* Added a cascade option to save().
* Added auto-detection of one-to-one relationships to the Loader.
* The object_class parameter to Manager methods now defaults to the
return value of the object_class() class method.
* The soft() and referential_integrity() methods of the ManyToOne and
OneToOne relationship classes have been renamed to optional() and
required(), respectively. The old method names still work, but may
be removed at some later date. Also, the default values are now
determined by a new set of rules, rather than a constant.
* Passing invalid query parameters to Manager methods will now
cause a fatal error.
* Scalar references now work correctly when used in IN(...) queries
built by QueryBuilder. (Patch by Perrin Harkins)
* Fixed a bug that caused get_set_on_save methods to fail for certain
kinds of ...-to-one relationships.
* Ignore empty "and" and "or" query parameters in QueryBuilder.
(Suggested by Jonathan Vanasco)
* Fixed a bug that caused update() to fail for tables where all columns
are part of the primary key. (Reported by Danial Pearce)
* Minor tweaks to the subselect-based limit/offset code.
0.742 (07.21.2006) - John Siracusa <siracusa@gmail.com>
* Added support for a more efficient subselect-based limit/offset
implementation for queries that would otherwise have to be
scanned through manually.
* Added a column class for PostgreSQL's BYTEA column type.
* Added support for DBI bind_param() attributes for all column types.
* Fixed a bug in the test suite that could cause the TIME(9)
column type test to fail in PostgreSQL.
* Fixed some POD formatting errors.
0.741 (07.14.2006) - John Siracusa <siracusa@gmail.com>
* Added end_of_month_mode parameter to the interval column class.
* Prevented perl_* code generation methods from attempting to
auto-initialize missing metadata.
* Added name/value pair, JSON, and YAML helper methods.
* Tweaked the JOIN syntax for MySQL in order to better accommodate
MySQL version 5.0.12+. (Reported by Glenn Gallien)
* Some small POD corrections.
0.74 (06.30.2006) - John Siracusa <siracusa@gmail.com>
* Added the Time column type.
* Added support for the changes_only parameter to the insert() method.
* Documented the manager_base_class(es) Loader methods.
* Fixed a bug that caused the Loader to refuse to use empty or
undefined class_prefix values.
* Fixed a bug that prevented auto_* methods names from working in
calls to the setup() method.
* Removed redundant @ISA declaration from generated Manager classes.
0.731 (06.12.2006) - John Siracusa <siracusa@gmail.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@gmail.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@gmail.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@gmail.com>
* Fixed incorrect skip count in t/spot-check-07.t
0.725 (05.17.2006) - John Siracusa <siracusa@gmail.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@gmail.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@gmail.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@gmail.com>
* Really remove Clone::PP this time...
0.721 (04.27.2006) - John Siracusa <siracusa@gmail.com>
* Improved and documented metadata inheritance behavior.
0.72 (04.19.2006) - John Siracusa <siracusa@gmail.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@gmail.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@gmail.com>
* Removed stray "._*" files from module distribution.
0.52 (11.21.2005) - John Siracusa <siracusa@gmail.com>
* Fixed bugs in loader when using a DSN instead of a db.
0.51 (11.20.2005) - John Siracusa <siracusa@gmail.com>
* Added auto-initialization of relationships.
* Added loader.
0.50 (11.17.2005) - John Siracusa <siracusa@gmail.com>
* Added optional lazy-loading of column values.
* Long-overdue version number bump.
0.081 (11.15.2005) - John Siracusa <siracusa@gmail.com>
* Tutorial added.
0.080 (11.14.2005) - John Siracusa <siracusa@gmail.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@gmail.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@gmail.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@gmail.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@gmail.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@gmail.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@gmail.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@gmail.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@gmail.com>
* Fixed incorrect method names in Numeric column type.
* Added tests to prevent the above error in the future.
( run in 0.891 second using v1.01-cache-2.11-cpan-39bf76dae61 )