Changes for version 0.765

  • Added a value_type attribute to SET columns.
  • Added a normalize_get_objects_args() utility method to make custom Manager methods less cumbersome to implement.
  • Setting a BigInt column to undef no longer sets it to zero. (Reported by Jeffrey Horn)
  • Corrected error propagation in many-to-many "find" methods when bad arguments are passed. (Reported by Michael Reece)
  • Added "use strict" the output of perl_manager_class().
  • Restored default use of table aliases in Manager queries. The new table_aliases parameter can be used to alter the behavior.
  • Added support for literal sort_by parameters using scalar references.
  • Added is/is_not comparison operators to QueryBuilder. (Suggested by Jonathan Vanasco)
  • Scalar references appearing in the select => ... list in Manager calls are now passed through unmodified.
  • Existing map records are now correctly checked for when adding items through a many-to-many relationship. (Reported by Drew Taylor)
  • Using a nonexistent column name in a primary or unique key is now a 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 Postgres 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)

Documentation

A guided tour of the basics of Rose::DB::Object

Modules

Extensible, high performance RDBMS-OO mapper.
Memory cached object representation of a single row in a database table.
Provide missing metadata by convention.
A singleton convention manager that does nothing.
A mix-in class containing convenience methods for Rose::DB::Object.
Iterate over a series of Rose::DB::Objects.
Automatically create Rose::DB::Object subclasses based on database table definitions.
Create object methods for arbitrary-precision numeric attributes for Rose::DB::Object-derived objects.
Create date-related methods for Rose::DB::Object-derived objects.
Create generic object methods for Rose::DB::Object-derived objects.
Create PostgreSQL-specific object methods for Rose::DB::Object-derived objects.
Create object methods related to Rose::DB::Object::Std-derived objects.
Create time-related methods for Rose::DB::Object-derived objects.
Fetch multiple Rose::DB::Object-derived objects from the database using complex queries.
Database object metadata.
Base class for database column metadata objects.
Big integer column metadata.
Big serial column metadata.
Binary large object column metadata.
Datetime year to fraction column metadata.
Datetime year to fraction(1) column metadata.
Datetime year to fraction(2) column metadata.
Datetime year to fraction(3) column metadata.
Datetime year to fraction(4) column metadata.
Datetime year to fraction(5) column metadata.
Datetime year to minute column metadata.
Datetime year to month column metadata.
Datetime year to second column metadata.
Double-precision column metadata.
Enumerated column metadata.
Seconds since the epoch column metadata.
Fractional seconds since the epoch column metadata.
Floating-point column metadata.
PostgreSQL BYTEA column metadata.
PostgreSQL CHKPASS column metadata.
Variable-length character column metadata.
Base class for table relationship metadata objects.
Many to many table relationship metadata object.
Many to one table relationship metadata object.
One to many table relationship metadata object.
One to one table relationship metadata object.
A base class for mix-ins.
Build SQL queries on behalf of Rose::DB::Object::Manager.
Standardized object representation of a single row in a database table.
Memory cached standardized object representation of a single row in a database table.
Standardized database object metadata.
Utility functions for use in Rose::DB::Object subclasses and method makers.

Provides

in lib/Rose/DB/Object/Constants.pm
in lib/Rose/DB/Object/Exception.pm
in lib/Rose/DB/Object/Exception.pm
in lib/Rose/DB/Object/Metadata/Auto.pm
in lib/Rose/DB/Object/Metadata/Auto/Generic.pm
in lib/Rose/DB/Object/Metadata/Auto/Informix.pm
in lib/Rose/DB/Object/Metadata/Auto/MySQL.pm
in lib/Rose/DB/Object/Metadata/Auto/Oracle.pm
in lib/Rose/DB/Object/Metadata/Auto/Pg.pm
in lib/Rose/DB/Object/Metadata/Auto/SQLite.pm
in lib/Rose/DB/Object/Metadata/ColumnList.pm
in lib/Rose/DB/Object/Metadata/MethodMaker.pm
in lib/Rose/DB/Object/Metadata/Object.pm
in lib/Rose/DB/Object/Metadata/Util.pm