Revision history for DBIx::Class::Sims (ordered by revision number). 0.500012 Sep 10 2020 12:00:00 PDT - MANIFEST fix, from removal of DateTime::Event::Random - Removed a handful of un-necessary dependencies - Adjust Hash::Merge usage, so we no longer set the global merge precedence, but instead use a localized Hash::Merge object 0.500011 Jul 08 2020 20:00:00 PDT - Fix syntax error existing in 5.10.1 0.500010 Jul 08 2020 19:00:00 PDT - Remove vendoring of DateTime::Event::Random 0.500001 Mar 04 2020 04:00:00 PDT - Ooops. I forgot to update the MANIFEST. 0.500000 Feb 29 2020 17:00:00 PDT - THIS RELEASE CONTAINS MULTIPLE POTENTIALLY-BREAKING BEHAVIOR CHANGES. - Complete revamp of the internal architecture. - Most of the private attributes have been renamed. - Everything is now an object. - Sims-specific wrappers for: - DBIC::Source - DBIC relationship data structure (hashes and CODE) - Retrieving unique rows will raise an error if the row doesn't match the provided spec. - Set `die_on_unique_mismatch => 0` to disable this - Using a type that isn't loaded will raise an error vs a warning. - Relationship constraints are now lazily checked. - If you say there should be 2 children, Sims will wait until all children are created before verifying that the constraint is met - Set `value_not` to constrain possible values for a column - This can be a scalar or an array. - Trace the creation of objects by setting the `object_trace` parameter - Trace the topograph as well, if needed, with `topograph_trace` - Disable all randomization with the `predictable_values` parameter 0.401000 Jun 09 2019 12:30:00 PDT - Provide a nice way to print DateTime objects in SIMS_DEBUG mode. - Upgrade Toposort to 0.060000 for `add_dependencies` option 0.400000 May 25 2019 12:30:00 PDT - THIS RELEASE CONTAINS A POTENTIALLY BREAKING BEHAVIOR CHANGE. - Only process children when a unique constraint is met. - This means no parent or value settings are processed. Only children. - Fix a nasty bug when the FK is also a UK and there is more than one relationship emanating from the child table. - Add support for relationships defined by subroutines - The assumption that all relationships are single-column is likely to have to be dealt with soon. but, not yet. - Add SIMS_DEBUG envvar to output useful debugging information. 0.320000 May 11 2019 12:30:00 PDT - Handle the case where a FK is also a UK - Note: This currently only works for a single-column UK containing the FK where there is 1-and-only-1 inverse relationship from the parent Anything more complex may be undecidable in all cases. - Add method traversal for backreferences - strict_mode renamed to ignore_unknown_tables (defaults to false) - Add a allow_relationship_column_names option (defaults to false) - strict_mode is now a compilation of other options - ignore_unknown_tables = false - allow_relationship_column_names = false 0.310001 Apr 14 2019 12:30:00 PDT - Documentation fixes. 0.310000 Dec 26 2018 14:30:00 PDT - THIS RELEASE CONTAINS A POTENTIALLY BREAKING BEHAVIOR CHANGE. - Add a strict_mode (defaults to true) - Throws an error when a tablename doesn't exist 0.303000 Nov 25 2018 14:30:00 PDT - Find the best match including all parentage. (Re-enabled feature) - Don't call update() in fix_deferred_fks if no columns are dirty. - Ignore inflated columns when looking for a sims spec. 0.302001 Nov 25 2018 13:30:00 PDT - Allow a DBIC object to be set to a column, not just a relationship. 0.302000 Nov 11 2018 19:30:00 PDT All fixes below graciously provided by ZipRecruiter. - Warn when a not-null autoincrement primary key has a value set. - Set the allow_pk_set_value parameter to disable the warning. - Defer handling of nullable FKs to enable self-referential rows. 0.301000 Nov 26 2017 19:30:00 PDT - Remove a section of code that takes parentage into account when looking for existing rows. Please see the attached comment for explanation. 0.300900 Nov 12 2017 14:00:00 PDT - Fix a bug preventing null_chance from working. - Fixes for running tests under 5.26 (was depending on dot-in-INC) 0.300800 Apr 21 2017 19:00:00 PDT - Use a hashref instead of a hashrefref when setting a sims-spec within a column. - This does not conflict with describing a parent's attributes. 0.300700 Apr 10 2017 11:00:00 PDT - Allow sim types authors to use a regex to match multiple strings to the same type handler. - Pass the calculated sims specification into the sim types generator. - This will enable types to get access to any overriden sims specification. 0.300600 Mar 05 2017 11:00:00 PDT - Pass the runner into the sim types generator. - This will enable types to get access to the schema and storage objects. 0.300501 Dec 29 2016 11:00:00 PDT - Ensure we are specifying at least one column when inserting into Oracle. 0.300500 Dec 17 2016 18:00:00 PDT - Many more column types have default values set when not null. - If a column type is unknown, an error will be thrown instead of silently failing over to the INSERT statement. 0.300406 Dec 12 2016 18:00:00 PDT - Applied pull/26 (Thanks, manwar!) - Added a check for accidental recursive creation (aka, self-referential tables). 0.300405 Dec 02 2016 12:00:00 PDT - Re-fixed RT#118518 (Thanks SREZIC!) 0.300404 Dec 01 2016 12:00:00 PDT - Support arrays for the "value" sim option - "values" is now synonymous with "value" - Fixed RT#118517, RT#118518 (Thanks SREZIC!) 0.300403 Nov 09 2016 12:00:00 PDT - Add a sim_types() method that returns the list of all registered types. 0.300402 Oct 26 2016 19:00:00 PDT - Change the default length for not-null varchar from 255 to 1. - Check $info->{size} as well as $info->{data_length}. 0.300401 Oct 25 2016 19:00:00 PDT - Add a minimum requirement on Data::Printer for np() 0.300400 Oct 24 2016 20:00:00 PDT - THIS RELEASE CONTAINS A POTENTIALLY BREAKING CHANGE. - NOT NULL columns are now populated, not just those with a sims setting. - This no longer throws an error if the column wasn't populated. - This will skip columns in PK and UK declarations. - Move the "our $VERSION" declaration to within the first 10 lines of lib/DBIx/Class/Sims.pm - CPAN hasn't been indexing new versions since 0.300004. - Use our own clone() function instead of Clone::Any - Clone::Any may disconnect the schema if a Result object is passed in. - Reporting of duplicates returns a copy of the row, not the row itself. 0.300300 Sep 04 2016 14:00:00 PDT - Tests no longer output randomness (Apparently, p() != np() ... who knew?!) - Can provide a number or a hashref for a has_many relationship - Can provide the \"Table[idx]" back-reference syntax for belongs_to rels. 0.300204 Aug 05 2016 14:00:00 PDT - Support nested relationships when finding existing rows 0.300203 May 24 2016 14:00:00 PDT - Add basic capability to follow relationships for finding parentage - Add detection of DateTime objects when searching across unique constraints 0.300202 Apr 30 2016 14:00:00 PDT - Add missing MANIFEST files (stupid me!) 0.300201 Apr 27 2016 14:00:00 PDT - Add a die_on_failure option (defaulting to 1) and returning the error when it is not set. 0.300200 Apr 27 2016 08:00:00 PDT - Refactor the codebase into a prepper and a runner. The runner will make it easier to extend the codebase and add more functionality. - Count what is created and return that as $additional->{created}. 0.300102 Apr 05 2016 08:00:00 PDT - Fix bug where the check to ensure different parents specifying the same child will link to it was too expansive. - Warn the seed used when a failure throws an error. - Improve test suite output to not show the outputted warning on failure. 0.300101 Apr 01 2016 11:30:00 PDT - Fix mistake where I used "limit" instead of "rows" (Thanks gtermars!) 0.300100 Mar 21 2016 09:00:00 PDT - THIS RELEASE UPGRADES THE MINIMUM PERL VERSION - Upgrade Perl minimum version from 5.8.4 to 5.10.2 - CPANTS was claiming breakage on 5.8.x and no need to support it - Clone the provided arguments because we handle them destructively - Enable forcing creation of parents with a __META__ field - Use {limit => 1} when searching for the first parent 0.300009 Mar 17 2016 09:00:00 PDT - Hoist DateTime-ish strings into DateTime objects as needed. 0.300008 Mar 15 2016 14:00:00 PDT - Force a reload from database of all rows returned by load_sims() - format all DateTime-like values that are passed in per the storage's datetime_parser(). 0.300007 Mar 15 2016 12:00:00 PDT - Finalize the ordering within create_item. - Properly handle the case where a child row specifies a parent that has rows of a different child table. (Previously, the child rows would have been part of the search for the parent, resulting in a wonky search.) 0.300006 Mar 10 2016 06:00:00 PDT - Move the preprocess hook back. This was a horrible change. 0.300005 Mar 09 2016 19:00:00 PDT - Move the preprocess hook to before the handling of FKs. This allows for the horribly hacky disabling of a FK if your data model requires such things. 0.300004 Mar 05 2016 19:00:00 PDT - Add support for looking things up by unique constraints (Thanks, Bluefeet!) 0.300003 Dec 08 2015 19:00:00 PDT - Remove MYMETA.yml (RT#108552) 0.300002 Feb 28 2014 06:45:00 PDT - Move the null_chance test into xt/ because the way the test is structured causes spurious failures. - Account for a change in DBD::SQLite's reporting of a NULL constraint violation starting in 1.41_01. 0.300001 Feb 27 2014 06:45:00 PDT - Upgrade the minimum DBD::SQLite requirement for building because CPANTS is throwing failures. 0.300000 Feb 25 2014 08:15:00 PDT - THIS RELEASE CONTAINS A BREAKING API CHANGE. - The random seed is returned as part of a new optional second value. - It may be specified in the call to load_sims. 0.200100 Feb 25 2014 08:15:00 PDT - Call toposort as a class method of TopoSort, not as a component method. - Allow the load_sims method to be called as a class method of Sims - This allows using this class without requiring it as a component. (Thanks, Ovid!) 0.200020 Feb 25 2014 08:15:00 PDT - Add the ability to set sim info at any time (not just at compile-time). (Thanks, Ovid!) 0.200010 Feb 25 2014 08:15:00 PDT - Fix a bug where multiply-specified children were not linked properly. 0.200001 Jan 07 2014 14:15:00 PDT - Add the missing us_firstname and us_lastname to the ::Types export list (Thanks, moltar!) - Moved to the proper version numbering (per mst) 0.20 Dec 25 2013 20:00:00 PDT - THIS RELEASE CONTAINS A BREAKING API CHANGE. - All of these changes are due bug reports from moltar on github. - You can now specify the values of the primary key. (Issue #1) - The second and third options to load_sims() have been merged into a single second option of "options". - The constraints parameter is now $options->{constraints} - The hooks parameter is now $options->{hooks} - There is now a new $options->{toposort} which allows passing options to the underlying TopoSort implementation. This is primarily useful for self- referential tables. 0.10 Oct 17 2013 19:00:00 PDT - THIS RELEASE CONTAINS A BREAKING API CHANGE. - The return value from load_sims() now contains the whole $row object, not just a hashref of the primary keys. - You can now pass in things other than an array of hashes for a resultsource in the sim specification. - A number, if all you're willing to accept the defaults and sims. - A hashref, if you just want one thing. - An arrayref (this was the previous API) - If you pass in anything else, that resultsource will be skipped. - You can now pass in a sim entry instead of a value for a given column. 0.06 Oct 06 2013 08:15:00 PDT - Fixed a bug where specifying an auto-generated parent's columns didn't actually set the values on the parent. 0.05 Sep 20 2013 17:30:00 PDT - Better documentation of the "sim" entry in the column_info - Added nullable frequency. - This allows control over when a nullable column is null vs. populated. - Added the following column types: - ip_address 0.04 Sep 20 2013 14:30:00 PDT - Split out the included types documentation into its own POD - Added "value" as an sim option. - This behaves like default_value without requiring a default_value on the column. - Added the following column types: - us_firstname - us_lastname - email_address - us_name uses us_firstname and us_lastname, plus sometimes provides a middle initial. 0.03 Sep 20 2013 08:00:00 PDT - Added missing files to the MANIFEST - Which included this file - Added the following column types: - us_city 0.02 Sep 19 2013 17:30:00 PDT - Removed unneeded import of Data::Dumper - set_sim_type() now takes a hashref, not a hash. - The documentation in 0.01 was correct, the code was not. - Added the following column types: - us_address - us_county - us_name - us_phone - us_ssntin - us_state 0.01 Sep 18 2013 20:00:00 PDT - Initial version