Revision history for Perl extension DBD::Mock. 1.59 2021-02-22T13:25:52Z - Added error detection for when a result set's callback doesn't return an arrayref or arrayrefs - Moved to GitLab for issue tracking 1.58 2020-11-02T13:34:48Z - Added the ability for mock result sets to set custom attributes for statement handles. Thanks to Erik Huelsmann for testing the new feature. 1.57 2020-09-18T06:57:48Z - Fixed bug rt133358 t/016_mock_add_resultset_test.t fails (with older DBI) 1.56 2020-09-17T14:35:10Z - The DBD::st module now supports the last_insert_id method - Result sets with callbacks can now specify a last_insert_id 1.55 2019-12-30T14:20:00Z - Fixed bug rt131264 t/033_table_info.t fails (with older DBI) 1.54 2019-12-23T12:44:22Z - Added Bernhard Graf's 'Feature: one shot failure' merge request. - Fixed description of the failure attribute of mock_add_resultset. It no longer claims to support a hash ref (as it doesn't). Thanks to Bernhard Graf for both the bug report and a merge request that fixes it. - Fixed bug where it wasn't possible to replace a regular expression mock resultset. Thanks to Bernhard Graf for both the bug report and a merge request that fixes it. - Fixed bug where the failure attribute wasn't working with regular expression mock resultsets. Thanks to Bernhard Graf for both the bug report and a merge request that fixes it. 1.53 2019-12-03T10:50:57Z - Error handling in mock_add_resultset is no longer experimental - Attribute Aliasing is no longer experimental 1.52 2019-10-28T11:35:41Z - Added in callback feature for result sets so that their contents can be more dynamic. 1.51 2019-10-23T11:43:51Z - Fixed issue with using attribute aliases alongside a driver DSN in the DBI->connect call 1.50 2019-10-22T19:37:26Z - Added attribute aliases support for MariaDB 1.49 2019-09-12T12:59:51Z - Fixing tests that fail on some old versions of Perl 1.48 2019-09-12T06:34:47Z - Added execution_history feature to enable tracking of multiple executes for prepared statements. - Added support for $dbh->table_info calls - Fixed bug rt91055 "insert IGNORE" doesn't raise last_insert_id - Fixed bug rt82243 Bug with Regex in DBD::Mock::Session 1.47 2019-09-06T10:03:39Z - Applied Max Carey's patch from rt86294 adding support for nested keys to fetchall_hashref - Added experimental Connection Callbacks feature - Fixed build for Perl v5.8 1.46 2019-09-04T12:02:08Z - Added git-repo url to meta-data - Fixed bug rt70587 Spelling Mistake - Added regex support to mock_add_resultset 1.45 October 22, 2012 - Extended DBD::Mock::Session functionality - Added bind_param_array() to mocked statements - Added execute_array() to mocked statements 1.43 August 29, 2011 - Segregated into different packages - Removed code coverage from POD - Fixed bug rt49537 Basic support for named parameters - Fixed bug rt70421 Build.PL now contains Test::Exception 1.42 August 7, 2011 - Fixed bug rt66815 DBD::Mock::Session error clobbered - Fixed bug rt69460 Info on META.yml is outdated - Fixed bug rt69055 Spelling mistakes in POD - RaiseError now works 1.41 June 22, 2011 - Changed incorrect verion number 1.40 June 19, 2011 - Fixed bug rt44591 second preapre giving an error - Fixed bug rt57981 warnings during clone - Fixed bug rt63191 Synopsis errors - Fixed bug rt66813 Google's group link in the POD 1.39 November 9, 2008 - If a statement handle had bound columns, then the fetch() and fetchrow_arrayref() methods never returned false. After they exhausted their data, they kept returning empty array references. - Hid all packaged but DBD::Mock from PAUSE. 1.38 November 8, 2008 - Bumped minimum Perl to 5.8.1, since that's what DBI requires. - Fixed incorrect use of no_plan in t/025_mock_last_insert_id.t. - The handling of attributes passed to the constructor was not correct. The major symptom was that attributes (such as RaiseError) which were passed to the constructor could not be overridden in the database handle which was returned from connect(). As a result, some attributes set to a false value may return '' instead of 0. 1.37 June 12, 2008 - New co-maintainer (aka sucker), Dave Rolsky - Added support for $sth->bind_col() and $sth->bind_cols() - Fixed and clarified docs for the mock_last_insert_id and mock_start_insert_id attributes. The previous docs were both wrong and confusing - Applied patch from RT #35145 to add support for the Column attribute with selectcol_arrayref - patch by Matt Lawrence 1.36 October 18, 2007 - $dbh->last_insert_id() now works as documented - Added a "use 5.006;" in order to put a safeguard on the "use warnings;" statement a little further down. 1.35 July 9, 2007 - Applying path from RT #16951 to return new result set for repeated calls to $sth->execute(). Thanks to Marc Beyer for this. - added tests for this - Fixing RT #25892 to make mock_records method work correctly. - added test for this - applying patch from RT #26604 to fix AutoCommit behavior. Thanks to Ryan Gerry for this. 1.34 July, 29 2006 - Fixed how AutoCommit is handled to avoid $dbh caching (RobK) - Thanks to Chas Owens for patch and test for the mock_can_prepare, mock_can_execute, and mock_can_fetch features. 1.32 Wed Dec 14, 2005 - Fixed RT Bug #15599 - Fixed RT Bug #15602 - converted to Module::Build - removed the VERSION file, and adjusted the numbers in all places needed - added patch from Andrew W. Gibbs to allow the ARRAY version of 'mock_last_insert_id' attribute - added test file as well - added docs on it too - $sth->execute now returns the number of rows as per the DBI docs - added some tests for this >> DBD::Mock::Session - now allows regexp's in the bound_params list so that you can check your params are 'like' something, and not exactly something - Improved error messages 0.28 Wen July 13, 2005 - update to patch from Andrew McHarg <email@example.com> to fix behavior in selectcol_arrayref() methods and tests - fix version in META.yml - some refactoring of fetchall_hashref(), fetchrow_hashref() to incorporate DBD-Mock error handling. 0.27 Mon July 11, 2005 - added NULL_RESULTSET constant - now allowing errors to be set with mock_add_resultset. Support is currently experimental, see the file 't/023_statement_failure.t' and the EXPERIMENTAL section of the docs for more information. - added patch from Collin Winter to fix a bug in the begin_work(), commit() and rollback() methods - added patch from Andrew McHarg <firstname.lastname@example.org> for the fetchall_hashref(), fetchrow_hashref() and selectcol_arrayref() methods and tests 0.26 Fri Apr 08 2005 - added Rob Kinyon to the AUTHORS list - added get_info() and set_info() - added tests for this - added bind_param_inout() for DBD::Mock::st code from Thilo Planz (Thanks Thilo) - added tests for this - added mock_data_sources and mock_add_data_sources properties for the Driver and Database handles - added tests and docs for this - added begin_work(), commit() and rollback() method implementations which wrap the prepare() method and deal with the AutoCommit value per the DBI spec. - added tests and docs for this 0.25 Sat Feb 26 2005 - removed the DBD::Mock::_error_handler routine since it was actually redundant with the DBI::set_err method. This was actually the source of the RT Bug #11515 which was found by Shlomi Fish (thanks Shlomi) - adjusted some tests for this fix 0.24 Fri Jan 28 2005 - added the reset() method to the DBD::Mock::Session object so that a session can be used more than once. - added tests for this - added docs for this - fixed a bug where the HASH version of 'mock_add_resultset' would consume the result sets and they would not be reusable. We now copy the result sets so that every time the statement is called the same results are returned - did not need to add docs for this, they already documented this as the behavior (hence calling this a bug) - added tests for this 0.23 Tues Jan 25 2005 - removed the trace log tests from t/10_db_handle.t since they seemed to be a source of issues on Win32. My rationale is that it is a DBI thing, and therefore does not need to be tested by DBD::Mock. - added a few more tests to t/11_dr_handle.t to test the 'mock_connect_fail' feature - added some clarification in the docs about the 'mock_connect_fail' feature as well. 0.22 Mon Jan 24 2005 - added the 'mock_connect_fail' boolean attribute for the DBD::Mock driver handle, this will prevent DBI from connecting. It can be used to simulate a bad DSN or something like that. - added tests and documentation for this. - Thanks to Justin DeVuyst for this idea. 0.21 Sun Jan 16 2005 > DBD::Mock::Session - added the optional 'bound_params' slot for the DBD::Mock::Session object - added tests for this - added documentation for this - added error to handle cases where there are not enough states in a DBD::Mock::Session object. - added tests for this - added documentation for this - added the ability to remove a session (by setting it to a false value) - added tests for this - added documenation for this > DBD::Mock - added test to check about overwriting hash-based result sets with 'mock_add_resultset' attribute - added documentation for this 0.20 Fri Jan 14 2005 - Modified a set of tests in t/10_db_handle.t to pass on Cygwin. Thanks to Rob Kinyon for this code. This code now uses File::Temp to make the temp log file in a cross platform manner. If File::Temp is not found on the system, then the tests are skipped. 0.19 Fri Jan 7 2005 - changed the VERSION in lib/DBD/Mock.pm to be 1.23, allow me to explain... Chris Winters (the original author ) used the CVS derived VERSION, which when I took over the module (8 versions ago) was at 1.15. Since I was not using Chris's CVS repo to store this I decided to give Mock.pm the VERSION number found in the VERSION file. Well,... PAUSE's indexer doesn't like it since it is a lower number and would complain every time I uploaded a new version. I ignored these complaints (at my own peril) until now. I found out recently that if you had version 0.11 or below installed (where the Mock.pm was version 1.15 or below), then installing through the CPAN shell would tell you DBD::Mock was up to date, even though it wasn't. So in order to fix this issue, and make sure that all those who want to install and update DBD::Mock easily, I changed the version number of DBD::Mock to be 1.23 to reflect the number of updates I have done since Chris handed it over to me. *sigh* Okay good, thats off my chest now. 0.18 Wed Jan 5 2005 - added reset() method to the DBD::Mock::StatementTrack::Iterator object - added test and docs for this - added the DBD::Mock::Session object and added the support for it in the DBD::Mock driver - added tests and docs for this - Thanks to Rob Kinyon and Chris Winters for their feedback on this feature - some general POD cleanup and formatting 0.17 Thurs Nov 4 2004 - added the following items: - a 'mock_num_rows' attribute which will give you the number of records affected/returned by the last statement - a num_rows method in the DBD::Mock::StatementTrack object, which is where the above attribute gets it's value - added the 'rows' method for statement handles (which didnt work before) 0.16 Sat Oct 30 2004 - minor change to the DBD::Mock::StatementTrack::Iterator behavior. It no longer derefs the history array, so it maintains a reference to it and therefore can be used like this: get-statement-iterator run-query check-next-statement-in-iterator run-query check-next-statement-in-iterator ... This prevents the need to re-fetch the iterator after each query. 0.15 Fri Oct 29 2004 - added the DBD::Mock::StatementTrack::Iterator object which can be accessed from the 'mock_all_history_iterator' attribute. - write the docs and test for it 0.14 Fri Oct 29 2004 - added the mock_last_insert_id attribute which will get incremented upon each INSERT query run. - added tests and docs for this - added the mock_start_insert_id attirbute so that you can both reset and set the start number for mock_last_insert_id - added tests and docs for this ** EXPERIMENTAL FEATURE (use caution) ** - added a feature to alias attributes. Basically it allows you to alias an expected attribute like 'mysql_insertid' to something DBD::Mock already has like 'mock_last_insert_id'. Right now this feature is highly experimental, and has been added as a first attempt automatically handle some of the DBD specific attributes which are commonly used/accessed in DBI programming. 0.13 Thurs Oct 28 2004 - added prepare_cached as suggested by Rob Kinyon in RT bug #7331. Also added his test script in 15_prepare_cached.t 0.12 Thurs Sept 2 2004 ** First version maintained by Stevan Little <email@example.com> ** - built up the test suite to 89.7% coverage - removed the undocumented 'mock_auto_commit' since it really was not very useful at this point. - added the DBD::Mock::Pool functionality - added tests for this - added documentation for this - added pod.t to test suite - removed AUTOLOAD in DBD::Mock::StatementTrack and replaced it with hand coded methods (sorry I really dislike AUTOLOAD) - centralized error handling in DBD::Mock::_error_handler 0.11 Fri Jul 23 10:35:13 EDT 2004 - Fix CPAN Bug #7057: add a no-op 'disconnect_all()' to DBD::Mock::dr to support DBI versions earlier than 1.34. - Add the ability to create SQL parsers that get fired on a prepare(). This way you can ensure your application generates correct SQL and have the system fail at the right time. Thanks to Rob Kinyon <Rob.Kinyon@progressive-medical.com> for the idea. 0.10 Sat May 8 14:12:39 EDT 2004 - Incorporate number of patches from Stevan Little to implement 'mock_can_connect', which allows you to simulate a downed database. Add supporting tests for database and statement usage. - Add the ability for 'mock_add_resultset' to associate a resultset with a particular SQL statement. Thanks to Stevan for the idea. - Add documentation for database handle property 'mock_add_resultset' 0.02 Tue Mar 9 12:56:54 EST 2004 Add 'VERSION' to MANIFEST, thanks to Mike Castle for the note. 0.01 Sun Mar 7 23:24:24 EST 2004 Initial version spawned from DBD::NullP shipped with the DBI. Many thanks much to Tim Bunce for the pointer and the original code.