The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Revision history for Perl extension Class::DBI::Lite.

1.034   2012-05-07
  - DEPRECATED until further notice.
    No other changes.

1.033   2012-03-08
  - This release fixes a long-standing bug in Class::DBI::Lite::Pager->nagivations
    which caused it to sometimes return '0' as the "start" position.
    eg: my ($start, $stop) = $pager->navigations()
    If you then did:
    for my $page_number ($start..$stop) { # Make a hyperlink to $page_number }
    Your first $page_number would sometimes be '0'
  - Ray Baksh++ for submitting the patch at a ridiculous wee hour in the morning.
    (Much appreciated!)

1.032   2012-03-02
  - No longer depend on or use DBIx::ContextualFetch.
  - RootMeta was not getting cached/setup correctly in ::Lite.  First attempt to fix this.
  - Bumped version dependency of Ima::DBI::Contextual due to bugfixes/enhancements there.

1.031   2012-02-29
  - Special leap-day release.
  - Documented the limit/offset/order_by way of calling ->search_where

1.030   2012-02-22
  - Fixed regression in 1.029 which caused db_Main to be reset each time
    a new connection was defined.
  - UPGRADE RECOMMENDED!

1.029   2012-02-13
  - Added support for master/slaves setup.
  - Multiple slaves are supported (there can only be one master).
  - Slaves are always read from *unless* you are within a transaction.
    In that case, all reads go to the master.
  - All writes go to the master.
  - You can change your slave connection at any time via ->switch_slave($debug).
  - Passing a true value to ->switch_slave will cause a little message to be printed
    to STDERR which looks like:
      "[Debug] Switched slave from DBI:mysql:dbname:host1 to DBI:mysql:dbname:host2"
  - Also updated the 'pagination' test so that it runs quicker.

1.028   2012-01-30
  - No longer die on a failed class-load.

1.027   2012-01-10
  - Setting $pager->page_number( 1 ) now works.

1.026   2011-11-18
  - do_transaction will now look at wantarray and execute the transaction coderef
    in the appropriate list or scalar context, and return the appropriate result.

1.025   2011-11-07
  - Fixed POD for count_search_where.  (ray.baksh++)

1.024   2011-11-04
  - Calling sth_to_objects(...) would return a list with a single 'undef' element
    instead of returning nothing when no results were found.

1.023   2011-10-27
  - Now if you want to override the default 'getter' or 'setter' behavior for a
    field in your objects, you can do so by defining _set_foo( $self, $val ) or
    _get_foo( $self ).
  - Thanks Eric for the idea!  ehayes.inflection++

1.022   2011-09-19
  - POD change from app::* to App::db::* namespace.

1.021   2011-06-14
  - Upgrade Recommended!!
  - BUG FIX: `before_update` triggers which caused changes to an object did not get those
    changes saved as part of the final update.

1.020   2011-06-05
  - Updates to work with changes in the public interface of Ima::DBI::Contextual.
  - No other changes.

1.019   2011-04-08
  - Updated POD to use the new lowercase classname standard - as in .NET's Entity Framework.

1.018   2011-04-07
  - Added ->trace( 1:0 ) to enable/disable SQL logging to STDERR via Carp::cluck.

1.017   2010-12-09
  - Upgrade Recommended!!
  - BUG FIX: before_update_<field> triggers were not able to change the value of object data.
    So if you had a before_update_password trigger that hashed the password before
    the plaintext password were stored in the database, it would not work as expected.

1.016   2010-11-17
  - Included Class::DBI::Lite::Dataset - a class with helper methods useful for
    fetching a recordset useful for paged displays.

1.015   2010-09-17  ** BEHAVIOR CHANGE!!!! **
  - has_many(...) no longer adds a trigger for after_delete that would remove whatever
    the 'has_many' reference declares.  Reason? This should be handled by the database,
    not by the application.

1.014   2010-09-09
  - root() is initialized to your application's base class (eg: My::Model).
    This helps segment database handles even further.

1.013   2010-08-08
  - This release fixes that bug related to running multiple applications under
    different VirtualHosts on the same apache server.

1.012   2010-05-20
  - This release addresses several issues related to running multiple applications
    under different VirtualHosts on the same apache server.

1.011   2010-05-19
  - Removed dependency on DBIx::ContextualFetch.
  - Removed dependency on Ima::DBI - lateral move to Ima::DBI::Lite.  See Ima::DBI::Lite
    for details on why...

1.010   2010-05-13
  - My::Thing->sql_pager(...) now correctly handles {order_by => ...}

1.009   2010-04-26
  - Class::DBI::Lite::mysql was incorrectly parsing `SHOW COLUMNS FROM <table>`
    and therefore not returning the correct information when you called:
      My::Type->get_table_info->column('foo')->enum_values
    This is now fixed.

1.008   2010-04-02
  - Pager was reporting incorrect stop_item before items() or next_page() were called.
  - That caused problems when you wanted to say...
    "Showing items X - Y of Z total items"
    ...before you actually showed them.

1.007   2010-04-02
  - Pager now does the right thing when you want to page without specifying
    the field to sort by.
  - New method $pager->navigations( [$padding] ).

1.006   2010-03-27
  - Pager was not handling 'has_next' correctly - now it does.

1.005   2010-03-22
  - Renamed has_a method as belongs_to.
  - Added has_one method.
  - Added test t/010-basic/000-AAAsetup.t that creates the SQLite database structure.
  - Added the ability to pass search_where-style arguments to the has-many relationship
    methods.  So if My::Artist has_many My::Album as 'albums' you can now do:
      my @albums = $artist->albums({name => { LIKE => 'Best of%'}}, {order_by => 'name DESC'});
    * A SPECIAL thanks to Tudor Marghidanu for finding a bug and for suggesting this update.

1.004   2010-03-16
  - Had to update Changes and META.yml.

1.003   2010-03-16
  - Added Class::DBI::Lite::Pager
  - Added 2 new methods: pager(...) and sql_pager(...)
  - Added documentation for the new methods and the Pager class.
  - Added tests for paging.

1.002   2010-03-13
  - create(...) now properly inserts the new object into the %Live_Objects cache.
  - Experimental NoSQL caching extensions added.
  - Caching options include InMemory and Memcached.

1.001   2010-02-14
  - Didn't update 'Changes' file in 1.000, so had to re-upload it and change version.

1.000   2010-02-14
  - Going 1.0!
  - Added lots of documentation and examples.
  - Test coverage is quite high.
  - Public interface is frozen.
  - Used in production for over a year on websites getting millions of hits.

0.034   2009-10-28
  - Enum vals NOW work for mysql.

0.033   2009-10-28
  - Fixed broken regexp from last update.

0.032   2009-10-28
  - New Feature: "enum" column values are now parsed and added to
    the "get_table_info->column('columnName')->enum_values" property as an arrayref.

0.031   2009-10-22
  - MANIFEST was missing t/lib/My/Fixtures.pm

0.030   2009-10-17
  - Added Class::DBI::Lite::Fixture for easy test fixtures.
  - Added tests for test fixtures.

0.029   2009-10-16
  - Added "ad hoc" queries.
  - Test coverage much better now.
  - Updated Artists/CDs example to Artists/Albums.

0.028   2009-08-22
  - Promoted _load_class to be a public method (as load_class($class) ).

0.027   2009-06-18
  - create() was calling discard changes after creation, which had the rare side-effect
    of reverting any values set by before_create triggers.

0.026   2009-06-12
  - Removed AUTOLOAD accessor/mutators.  Gained a performance increase (oh about 300%).

0.025   2009-04-17
  - Update to after_update_$field triggers to keep them from getting called
    over-and-over.

0.024   2009-04-07
  - Field-triggers were not getting called (eg: after_update_$field)

0.023   2009-04-06
  - Transactions that failed only warned.  Now they confess.

0.022   2009-04-05
  - Transactions work properly.
  - Added TableInfo and ColumnInfo.
  - Added class method 'Class->get_table_info()' which returns a TableInfo object.

0.021   2009-04-01
  - There was a rogue "commit" statement in DESTROY.  Removing it made transactions
    work properly.
  - Added test for transactions.

0.020   2009-03-20
  - Converted to Module::Install.
  - Added several tests, improved code-coverage.
  - discard_changes() now uses the __Changed->{$fieldname}->{oldval} data instead
    of re-retrieving the object from the database.
  - Fixed typo in error message for AUTOLOAD in Class::DBI::Lite.

0.019   2009-02-07
  - Broke schema metadata and entity metadata out into their own classes.
  - Metadata classes are schema/entity-partitioned singletons.
  - Initialization process is slightly different as a result of metadata changes.
  - Classes that subclass entity classes no longer have to call set_up_table(...).

0.018   2009-01-05
  - Subclasses of entity classes should no longer receive 
    errors like "Can't use an undefined value as a HASH reference"

0.017   2008-11-23
  - Use of has_a or has_many sometimes failed because _init_meta had not yet
    been called.

0.016   2008-10-27
  - db_Main database handle is now created with "AutoCommit = 1" to prevent a
    transaction deadlock in other code that uses Class::DBI::Lite::mysql.

0.015   2008-10-26
  - Object cache key now begins with the current database schema.

0.014   2008-10-24
  - Added "after_set_up_table()" event.

0.013   2008-10-12
  - Added Test::Memory::Cycle to dependencies list in Makefile.PL

0.012   2008-10-10
  - Updated some documentation.
  - has_a and has_many causes the other class to be loaded via require().

0.011   2008-10-09
  - Stable release of new version.
  - Fixed a bug under mod_perl which caused unstable behavior when each
    VirtualHost used a different database handle.  Sometimes a VirtualHost
    started talking to the wrong database (which is not good, obviously!).

0.010_01   2008-10-09
  - Complete rewrite.
  - Removed dependency on Class::Data::Inheritable.  Switched to simpler
    class-based "meta" hashrefs.
  - Improved performance.

0.009   2008-09-16
  - Added find_column().

0.008   2008-08-17
  - Added logic to ping() the DBI handle a maximum of once every 5 seconds.
    This should fix the bug that causes the occasional "white screen of death"
    after a web application has been idle for a long period.

0.007   2008-08-01
  - discard_changes() now correctly discards changes.
  - Updated POD to mention DBIx::Class and DBIx::Class::CDBICompat.
  - Added a memcycle test to check for any memory leaks.

0.006   2008-07-18
  - $obj->remove_from_object_index() removes it from memory AND the %Live_Objects cache.

0.005   2008-07-18
  - $obj->delete on an object that has_many will delete its has_many records
    via straight SQL unless the has_many class has before/after_delete triggers.
  - added new trigger events:
      before_set_$column( $s, $oldval, $newval )
      after_set_$column( $s, $oldval, $newval )
      before_update_$column( $s, $oldval, $newval )
      after_update_$column( $s, $oldval, $newval )
  - Updating a field value with the same value as the old value is ignored.

0.004   2008-07-18
  - All create/update/delete/add_to_* actions are performed within transactions.

0.003   2008-07-18
  - OK, *now* triggers are called on the correct objects.

0.002   2008-07-18
  - Triggers are now called on the correct object with the correct @_.

0.002_01  2008-07-17
  - Updated Makefile.PL to properly list all prerequisites.
  - Updated POD.

0.001 2008-07-16
	- original version; created by h2xs 1.23 with options
		-AXn Class::DBI::Lite