Revision history for DBIx-Squirrel
1.6.0 2024-09-?? ??:?? Next Stable Release
1.5.4 2024-09-12 20:52 Developer Release (Work In Progress)
- GOALS 1.5.4
- F1 Allow database entity helpers to be assigned values more than
once.
- T2 Increase DBIx::Squirrel::st test coverage appreciably from
63.3 pc.
- D3 Improve the SYNOPSIS, which is too long and wastes far too
much space covering activities that can be done with the DBI.
1.5.3
- Added a new "slurp" exported function to DBIx::Squirrel::Utils
to read binary files, decrypt them, uncompress them, and parse
them as JSON data. This is used by the DBIx::Squirrel::db
"load_tuples" method for bulk populating/depopulating tables
using a callback for the work. I found that I urgently needed
the feature in another project, so I added it here to be used
there.
- Minor documentation edits.
- 1.5.2
- IMPROVED the README page, which sucked. The POD page is still
there, but it is sulking in a separate document.
- IMPROVED the DESCRIPTION, which was too short and did a poor
job of marketing the package.
- ADDED new iterator export "result_number", which is a 1-based
alternative to "result_offset".
- ADDED new iterator predicate "is_active", which is true if the
underlying statement is still active. This plugs an oversight
in testing "next" for truthy values (which is not always a
guaranteed outcome with user land transformations).
- ADDED new iterator predicate "not_active", to complement the
newly added "is_active" predicate.
- 1.5.1
- Fixed issue affecting Perl 5.10.1 build checks on GitHub runner
that wasn't able to install Test::MockModule due to two of its
own dependencies having build issues. Worked around by dropping
Test::MockModule as a build requirement and mock-patching the
required method manually.
- Added comment to tests scripts explaining why we now have to use
the Test::More::UTF8 package.
1.4.2 2024-08-28 23:21 (Stable Release)
- NEW
- Non-breaking changes the cache_size_slice and slice_cache_size
methods, in which the second argument is optional. This was done
to be consistent with the re-worked reset method.
- Non-breaking change to the reset method, which may now be used
to change cache size and/oor slicing strategy.
- The DBIx::Squirrel::Iterator package now has and exports new
functions that expose aspects of the iterator's current context
to stages in a transformation pipeline.
- REFACTOR / FIX
- Removed redundant import (&List::Util::uniq). The function is
not implemented on a couple of CPANTs builds, and it's absence
caused build failures. I stopped using it, but forgot to remove
the import, in itself causing build failures on systems with an
old List::Util.
- In keeping with the DBI and for the sake of consistency,
anything I once referred to as a “buffer” is now referred to as
a cache, and this has resulted in the names of many things being
changed. For now, there are no breaking changes in the public
interface due to the presence of now deprecated aliases. I'll
remove these in 1.5.0. DOCUMENTATION
- POD reflects some of the mentioned name changes.
- New features documented.
- TESTS
- Some tests updated to reflect mentioned name changes.
- Got a steer from TWATA to look at TRWYANT PPIx::Regexp for a
possible solution to /Can't locate object method “e” via package
“warnings”/ in some Strawberry Perl builds. Thanks, both!
- Riffing-off the suggestion above, I've ended up using Mons
Andersons Test::More::UTF8 and preliminary results look good.
One of the Win32 Strawberry Perl 5.14.4 build is now green
(yay!)
- TEST COVERAGE
---------------------------- ------ ------ ------ ------ ------ ------ ------
File stmt bran cond sub pod time total
---------------------------- ------ ------ ------ ------ ------ ------ ------
blib/lib/DBIx/Squirrel.pm 85.0 44.1 55.5 100.0 n/a 35.1 78.8
...DBIx/Squirrel/Iterator.pm 69.9 40.3 73.9 72.0 0.0 7.8 58.6
...x/Squirrel/ResultClass.pm 65.8 23.5 n/a 81.8 0.0 0.7 56.3
...BIx/Squirrel/ResultSet.pm 67.0 20.0 n/a 81.8 0.0 1.4 61.1
...ib/DBIx/Squirrel/Utils.pm 97.7 100.0 100.0 91.6 0.0 7.5 92.6
blib/lib/DBIx/Squirrel/db.pm 66.6 46.8 33.3 90.4 0.0 0.6 61.3
blib/lib/DBIx/Squirrel/dr.pm 84.2 50.0 33.3 90.0 0.0 43.4 67.5
blib/lib/DBIx/Squirrel/st.pm 69.5 50.0 22.2 96.0 0.0 3.0 63.3
Total 72.5 43.7 55.0 84.4 0.0 100.0 64.0
---------------------------- ------ ------ ------ ------ ------ ------ ------
1.4.1_1 2024-08-28 Developer Release
- Testing release, trying to mop-up last remaining red blobs on
CPANTs.
1.4.1 2024-08-28 TRIAL Release
- Testing release, trying to mop-up last remaining red blobs on
CPANTs.
1.4.0 2024-08-27 21:00
- BREAKING CHANGES
- Packages not subclassing DBI packages have now been renamed. The
names are longer than the uninformative two-character names
originlly given.
- Many routines housed under the Utils namespace have now been
moved to namespaces that are more suitable.
- REFACTOR / FIX
- A lot of older code refactored to make it more efficient, more
clear, or more robust. I'm hoping this positively affects
outcomes on a small number of CPANTs builds still having issues.
- Suspect some issues with database connection, but mainly with
statement preparation, were being hidden by ignoring return
values. Now checking these in case we're still having problems
accessing statement attributes on a few CPANTs builds.
- DOCUMENTATION
- Minor changes; mostly how things are named.
- TESTS
- More unit tests added.
- Many tests broken by changes now fixed.
- All $sth->{ParamValues} fail on CPANTs builds using DBD::SQLite
versions older than 1.56 because that's the first version to
have the feature added. Updated the test code to detect the
version in use and SKIP those checks for systems using an older
DBD::SQLite. Since we don't use it in the non-test code,
skipping is those tests is more than sufficient.
- TEST COVERAGE
---------------------------- ------ ------ ------ ------ ------ ------ ------
File stmt bran cond sub pod time total
---------------------------- ------ ------ ------ ------ ------ ------ ------
blib/lib/DBIx/Squirrel.pm 91.3 55.5 66.6 100.0 n/a 40.3 85.3
...DBIx/Squirrel/Iterator.pm 72.5 43.9 73.9 76.7 0.0 6.0 61.7
...x/Squirrel/ResultClass.pm 65.8 23.5 n/a 81.8 0.0 0.7 56.3
...BIx/Squirrel/ResultSet.pm 67.0 20.0 n/a 81.8 0.0 1.4 61.1
...ib/DBIx/Squirrel/Utils.pm 97.7 100.0 100.0 91.6 0.0 7.2 92.6
blib/lib/DBIx/Squirrel/db.pm 53.7 25.0 33.3 85.7 0.0 0.6 47.1
blib/lib/DBIx/Squirrel/dr.pm 84.2 50.0 33.3 90.0 0.0 40.3 67.5
blib/lib/DBIx/Squirrel/st.pm 87.5 71.4 44.4 100.0 0.0 3.2 80.5
Total 75.6 46.4 60.0 86.6 0.0 100.0 66.9
---------------------------- ------ ------ ------ ------ ------ ------ ------
1.3.6 2024-08-26 23:00
- REFACTOR / FIX
- The argument partitioning code that isolates transformations
from bind-values has been re-written to (hopefully) avoid some
of the complaints evident when testing under some older Perls.
- Much of the shitty old code in DBIx::Squirrel::util has been
reworked and, given its importance, covered by some new and
comprehensive unit tests.
- Made good on an earlier idea to rename the iterator's execute
method to start. Within that context, it makes more sense since
execute could reasonably be thought to require bind-params at
all call sites, but that isn't always the case in the iterator
code. So a different name made sense, and execute has been
demoted to alias so as not to break anything.
- DOCUMENTATION
- Minor updates.
- TESTS
- Added compile test.
- Added some important unit tests.
- Monitoring test coverage now. More tests to come in forthcoming
releases.
1.3.5 2024-08-26 07:40
- Fixed a problem recently introduced into how transformation
pipelines and arguments are partitioned.
- Fixed the iterator execute method. It used the bleat about missing
bind- values, but that doesn't make sense during construction when
there might legitimately be none. Now calling execute with none of
the expected bind-values just effectively resets the iterator.
- Fixed the results code that was breaking due to a missing
no strict qw/refs/.
1.3.4 2024-08-25 18:30
- Some refactoring to improve robustness.
1.3.3 2024-08-25 18:15
- Typos fixed and additions made to POD.
- Tests no longer jump through hoops to open the SQLite test database
in read-only mode. I only tried that to see if it would have a
positive effect on tests segfaulting. I have since simplified
testing a great deal since the rewrites, so pushing out this release
to see if it mops-up a couple of red boxes on CPANTs.
1.3.2 2024-08-25 16:45
- Fixed typos.
- General improvements and optimisations.
- Strawberry Perl 5.10.1.1 on MSWin32-x86-multi-thread can't seem to
import DBD::SQLite::Constants ‘:file_open' because is isn't
exported. Hopefully, a conditionally workaround solves the issue.
- Strawberry Perl 5.14.4.1 on MSWin32-x86-multi-thread gives /Can't
locate object method “e” via package “warnings”/ error. Added “use
diagnostics” pragma to all test code in an attempt to coax more
useful information out.
- Fixed broken iterator “buffer_size” code - manually set sizes
weren't persistent.
1.3.1 2024-08-24 14:10
- General code improvements.
- Removed unnecessary imports.
- Removed call to no longer extant iterator method from
&DBIx::Squirrel::it::DESTROY.
- Added the “count_all” method back into the iterator class, as well
as ensuring that “count” does not affect a future call to “next”.
- Addressed build failures revealed by the CPAN Testers Matrix:
- Rewrote &DBIx::Squirrel::util::args_partition - failed on Perl
versions <= 5.18.4;
- Back to using “strict” and “warnings” - Modern::Perl having some
issues with a bundle “all” in Perl versions <= 5.14.4.
- Perls versions <= 5.13 do not support ${^GLOBAL_PHASE}, so used
Devel::GlobalDestruction to work around the issue.
- Testing under Perls <= 5.13 seems to require “done_testing()”
for each sub-test, as well as at the end of the test script.
- Testing under Perls <= 5.11 does not support sub-test. I can
live without them, so have refactored the tests not to use them.
Tests pass under Perl 5.10!
- The seemingly bottomless pit of joy that is documentation updates.
I'm pushing this out, knowing that there are gaps in the POD that
must be filled. I want to get the remaining red issues on the CPANTS
matrix to go green, hence the expedited release. POD gaps will be
filled in future point releases.
1.3.0 2024-08-23 21:00
- Ground-up rewrite of iterators and result-set code.
- Ground-up rewrite and simplification of test code.
- More documentation added. This stuff is never finished, and I'll be
adding more in future!
- A lot of refactoring and tidying up completed.
1.2.11 2024-08-18 13:15
- Fixed typos.
- Did some internal refactoring.
- Updated t/lib/T/Constants.pm to ensure that SQLite database
connections are created with both sqlite_see_if_its_a_number => !!1
and sqlite_open_flags => SQLITE_OPEN_READONLY flags and re-ran tests
successfully on macOS under Perl 5.28.1. Action was prompted by CPAN
Tester report confirming Wstat 139 SEGFAULT on BSD under Perl
5.28.1; I have no way to replicate this build environment exactly,
so I'm hoping this fixes the issue. We shall see. Thanks to Chris
Williams (BINGOS) for the original report.
1.2.10 2024-08-17 17:35
- Fixed minor typos in POD.
- Did some internal refactoring.
- Updated dist.ini: no longer using Dist::Zilla Readme plugin to
produce README.
- Updated st.pm: bind_param method no longer drops the third argument
(bind attributes) before handing-off to &DBI::st::bind_value.
- No longer quoting hash keys matching /^+$/.
1.2.9 2024-08-17 22:50
- Reorganised the examples folder and renamed an example script.
- Added some canned transforms.
- Added new example script (examples/transformations/02.pl).
- Added DBD::SQLite to test dependencies, with thanks to Slaven Rezić
(SREZIC) for the alert.
1.2.8 2024-08-16 18:45
- Fixed some documentation issues.
- Removed a redundant line from sample script
(examples/transformations_1.pl).
1.2.7 2024-08-16 18:00
- First version, released on an unsuspecting world.