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_ 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 ` 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