Class-DBI-Frozen-301
view release on metacpan or search on metacpan
(by reloading from the DB) [If you were using this
trigger to alter the columns to be cleaned out this
can (for now) be done using the 'create' trigger,
although that's deprecated. Let me know if you really
need this ability.
Deprecations
- move() is deprecated. The concept is broken and will be removed
unless someone convinces me to keep it.
- normalize* are no longer necessary, due to the new Column objects,
which store their normalized and unnormalize form. (Calling these
will have no effect, other than a warning).
- has_column deprecated in favour of find_column
Other
- init() now takes hash to instantiate with (Tim Bunce)
- Rewrite of _require_class, with better short-circuiting and error
message reporting (Tim Bunce)
- new Class::DBI::Column to represent a column. Some functionality
moved from ColumnGrouper to here.
- mutator and accessor name overrides now stored in column, and not
looked up every time.
- attempt to trap and propogate all DBI failures
0.93 Wed Jul 2 2003
New Functionality
- Multi-column primary keys are now supported. [with huge thanks to Tim
Bunce]
- New syntax for inbuilt SQL
- classes can control stringification via as_string() and
stringify_column().
- set_sql automatically translates __TABLE__, __ESSENTIAL__, and
__IDENTIFIER__
Performance Improvements
- use Storable's dclone() rather than Data::Dumper's deepcopy
Documentation
- document the order_by option to search() [Drew Taylor]
- fix the documentation of the DBI connect string [Phil Crow]
- document working with pre_create triggers
- add a note on dynamically generating a database connection
- avoid using (shift => $val) due to quoting issues! [Simon Wilcox]
- refer to Class::DBI::Oracle for sequences [Jay Strauss]
- give better explanation for construct() [Jay Strauss]
- document get/set with multiple arguments [Jay Strauss]
- more detailed description of arguments to has_a()
Bug Fixes
- Bug with setting driver defaults [Jay Strauss + Schwern]
- Bug where selecting a column that was only in 'All' group also
attempted to fetch any TEMP columns. [Dominic Mitchell]
Removal of Functionality
- Undocumented ordered_search method has been removed in favour of
order_by option to search.
- Undocumented make_filter method removed in favour of add_constructor
- add_constructor no longer does (undocumented) %s substitutions
- (undocumented) single_value_select() method no longer takes raw
SQL fragments.
0.92 Sat Apr 12 2003
New Functionality
- classes named after reserved SQL words can now supply a
table_alias either directly, or as a second argument to table().
Deprecations
- hasa() now calls has_a() with a warning. It will disappear
completely in a forthcoming release.
- issue warning on use of old hasa_list
Bug Fixes
- class data properly propagates (i.e. two classes can once again
have has_a relationships of the same name) [Miyagawa + Marty]
- only deflate columns that are changing on update.
Other
- croak if update() does not change exactly one row [Tim Bunce].
(Not yet live)
- The Essential column group now defaults to Primary rather than
All.
0.91 Sat Mar 8 2003
New Functionality
- has_many can now take an extra set of search parameters at execution
- has_many mapping method can now be a list
- Class->delete(@search_args) deletes all results matching search
criteria.
- search can take a final hash of arguments. Currently the only one
honoured is 'order_by'
- searches deflate objects passed as search values as with has_a()
- iterators can be slice()d
- classes can provide their own iterators
- columns in the TEMP column group will be non-persistent
- set_sql automatically sets up a search_ method for that SQL
- constraints can cross-check using new syntax, and per_column
trigger points.
- the after_update trigger can modify the list of changed columns
to change refresh behaviour
- Can delete via the iterator: $cd->artists->delete_all
- New Class::DBI::Query module for dynamically constructing queries
- Standardised exception handling (thanks to Tim Bunce)
- on_failed_create no longer needed
- overloading of objects
- autoincrements work with SQLite
Deprecations
- commit() and autocommit() are now update() and autoupdate()
- rollback() is now discard_changes()
- hasa() now warns if used
- trigger points create() and delete() warn when called
- trigger point on_setting no longer exists
Optimisation
- has_a lazy inflates other Class::DBI instances
- roll our own require rather than depending on UNIVERSAL::require
(thanks to Tim Bunce)
- Don't add __Changed = {} to every object on creation,
( run in 1.540 second using v1.01-cache-2.11-cpan-364913b4093 )