The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Changes for version 0.8 - 2005-12-04

  • original version; created by h2xs 1.23 with options -AX -n ORM
  • New features:
    • Implemented reverse properties
    • Implemented object linking on arbitrary properties
    • Modify '_db_type_to_class' to accepts field_name and field_type arguments
    • Implement transactions
    • Modify ORM->stat to add ability to load several objects by one query
    • Use cache in ORM::Db::DBI->select_full
    • Implement object cache
    • Deny use of intermediate classes without their own tables, because in opposite case when exist 2 intermediate classes derived from one base class then search through one of child classes also finds objects of second class.
    • Implement use of ORM::Expr with 'update'
    • Add SQL logging feature to ORM::Db
    • Implement separate layer for DB operations
    • Autoreconnect to SQL server after "Mysql server has gone away"
    • Add method ORM->stat()
    • Feature to use sealed classes (when primary table does not contain class field)
    • Argument lazy_load to ORM->stat(), which allows to use lazy loaded objects
    • Lazy loaded objects, implement 2 variants:
      • variant 1: known only 'id' and nothing loaded
      • variant 2: loaded only tables of primary class
    • Use of third party classes as object properties
    • Calculated meta-properties (ORM::Metaprop incapsulates ORM::Expr)
    • ORM should log changes history via ORM::History
    • Initial class configuration:
      • global parameter 'history_is_enabled'
      • posibility to enable/disable hostory on per class basis
      • global parameter 'emulate_foreign_keys'
      • method 'new', 'update', 'delete' should accept argument to enable/disable history for particular operation
    • Implement object changes history
    • Produce separate initial class from ORM for every separate object model
    • Use ORM::Db->qt to quote table names, ORM::Db->qf to quote field names, ORM::Db->qi to quote aliases
    • Use ORM::Db->qi to quote table names and field names
    • Add redefineable method ORM->_db_type_to_class
  • Fixes:
    • Delete method ORM::Metaprop->_expanded
    • Reimplement table joins
    • Fix automatic loading of related modules
    • Modify 'update' method
      • Wrong compare of properties: $arg{prop}->{$prop} ne $self->{_ORM_data}->{$prop}
      • add check, whether object was changed after it was fetched from DB
      • ability to update objetc only when its properties are equal to those assumed by user
    • Fix _validate_prop
    • Fix ORM::Tjoin
    • ORM::History->rollback should delete rolled back history entries from 'history' table
    • Replace calls to isa to UNIVERSAL::isa
    • Stop using obsoletted ORM::db_auth
    • Move automatic init of 'cdate' properties from ORM to my initial class;

Documentation

ORM
Object relational mapper for Perl.
ORM
Îáúåêòíî ðåëÿöèîííûé ìàïïåð äëÿ Perl, ïðåäíàçíà÷åí äëÿ õðàíåíèÿ è ïîèñêà îáúåêòîâ â áàçå äàííûõ.

Provides

ORM
in lib/ORM.pm
in lib/ORM/Base.pm
in lib/ORM/Broken.pm
in lib/ORM/Cache.pm
in lib/ORM/Const.pm
in lib/ORM/Date.pm
in lib/ORM/Meta/ORM/Date.pm
in lib/ORM/Datetime.pm
in lib/ORM/Meta/ORM/Datetime.pm
in lib/ORM/Db.pm
in lib/ORM/Db/DBI.pm
in lib/ORM/Db/DBI/MySQL.pm
in lib/ORM/Db/DBI/SQLite.pm
in lib/ORM/Db/DBIResultSet.pm
in lib/ORM/Db/DBIResultSetFull.pm
in lib/ORM/Db/Replicated.pm
in lib/ORM/DbLog.pm
in lib/ORM/DbResultSet.pm
in lib/ORM/Error.pm
in lib/ORM/Expr.pm
in lib/ORM/Filter.pm
in lib/ORM/Filter/Case.pm
in lib/ORM/Filter/Cmp.pm
in lib/ORM/Filter/Func.pm
in lib/ORM/Filter/Group.pm
in lib/ORM/Filter/Interval.pm
in lib/ORM/Ident.pm
in lib/ORM/Meta/ORM/Date.pm
in lib/ORM/Meta/ORM/Datetime.pm
in lib/ORM/Meta/ORM/History.pm
in lib/ORM/Metaprop.pm
in lib/ORM/MetapropBuilder.pm
in lib/ORM/Order.pm
in lib/ORM/ResultSet.pm
in lib/ORM/Stat.pm
in lib/ORM/StatResultSet.pm
in lib/ORM/Ta.pm
in lib/ORM/Tjoin.pm
in lib/ORM/TjoinNull.pm