8 years agoRemove useless try{} and rename some variables in ::TxnScopeGuard
Peter Rabbitson [Wed, 27 Jan 2016 17:12:00 +0000]
Remove useless try{} and rename some variables in ::TxnScopeGuard

No functional changes, read under --color-words

8 years agoConsolidate various $storage state resets in $storage->disconnect()
Peter Rabbitson [Fri, 22 Jan 2016 12:07:49 +0000]
Consolidate various $storage state resets in $storage->disconnect()

Currently no functional changes, but see next commits

8 years agoMake sure Win32-like DBICTest checks are not tripped by repeated disconnects
Peter Rabbitson [Fri, 22 Jan 2016 13:14:58 +0000]
Make sure Win32-like DBICTest checks are not tripped by repeated disconnects

8 years agoEven more elaborate txnguard testing, augmenting 6e102c8f
Peter Rabbitson [Mon, 14 Dec 2015 11:08:31 +0000]
Even more elaborate txnguard testing, augmenting 6e102c8f

Essentially this ensures the claim in 35cf7d1af (exception codepaths within
DBIC are not affected by a leftover non-cooperative exception object present
in $@) is semi-correct

Read under -w

8 years agoThrow away remnant commented out in 36099e8c
Peter Rabbitson [Mon, 14 Dec 2015 10:40:21 +0000]
Throw away remnant commented out in 36099e8c

The stuff being tested is too touchy already to try adding extra sugar to the
test. If anything further moving away from Test::* might be in order.

8 years agoRelax overly aggressive exception-well-formedness checks from 84e4e006
Peter Rabbitson [Sun, 13 Dec 2015 16:25:38 +0000]
Relax overly aggressive exception-well-formedness checks from 84e4e006

Given that the actual exception codepaths within DBIC are not affected by
a leftover non-cooperative exception object present in $@, it is rather
counterproductive to warn out the PSA in these cases

8 years agoMicrooptimize various "is this string empty" checks
Peter Rabbitson [Mon, 14 Dec 2015 09:18:17 +0000]
Microoptimize various "is this string empty" checks

Checking the truthiness of the separately tracked string length is vastly
faster than doing actual string comparison

Working set identified via: grep -nPr "\b(ne|eq)\b\s*(\"\"|''|q{}|q())" lib

8 years agoRemove all uses of Scope::Guard from the tests, use our own version
Peter Rabbitson [Tue, 14 Feb 2012 22:13:30 +0000]
Remove all uses of Scope::Guard from the tests, use our own version

A deferred constraints rework several commits later will remove all remaining
uses from lib/ and as such we will lose the dep entirely

8 years agoAdd the repository-specific git config include (git >= 1.7.10)
Peter Rabbitson [Tue, 19 Jan 2016 21:08:10 +0000]
Add the repository-specific git config include (git >= 1.7.10)

!!! NOTE - potential security RISK !!!

 You *MUST*
  - check the file is legit:
     git diff 7eb1f0e165a4 maint/git_config_dbic.inc

  - copy the file to your .git directory:
     cp maint/git_config_dbic.inc .git/

  - and include it:
     git config --add include.path git_config_dbic.inc

 **NEVER** include the file directly from the repository itself, e.g.

 [include]
   path = ../maint/git_config_dbic.inc

!!! NOTE - potential security RISK !!!

Adds extra maint-specific repositories, and defines two gitk shortcuts:

 `git vis` - showing all current heads/stashes of interest in progress
 `git prvis` - showing all unattended to github PRs

8 years ago(travis) Add DB2 to the CI lineup
Dagfinn Ilmari Mannsåker [Thu, 8 Jan 2015 12:00:34 +0000]
(travis) Add DB2 to the CI lineup

Not testing on legacy infrastructure (3G Ram) for the time being

8 years ago(travis) Instead of polluting the log on failure, just be loud on OOM alone
Peter Rabbitson [Fri, 8 Jan 2016 18:19:38 +0000]
(travis) Instead of polluting the log on failure, just be loud on OOM alone

Printing the entire VM state has not been useful for the 2 years it's been in
place, so just retire it altogether

8 years ago(travis) Install extra deps for the t/52leaks.t persistency tests
Peter Rabbitson [Fri, 23 Jan 2015 06:50:50 +0000]
(travis) Install extra deps for the t/52leaks.t persistency tests

These are not part of OptDeps as the stuff on CPAN is hopelessly outdated.
But if we leverage the excellent patchsets prepared by the debian-perl group
we can get very very far indeed.

8 years agoAudit/simplify various ->is_* runmode specs
Peter Rabbitson [Tue, 19 Jan 2016 20:45:32 +0000]
Audit/simplify various ->is_* runmode specs

8 years agoRevert sloppy workaround in dabde0bc5, addressed by prev. commit
Peter Rabbitson [Thu, 7 Jan 2016 17:37:28 +0000]
Revert sloppy workaround in dabde0bc5, addressed by prev. commit

Tighten up the Firebird setup, add an explicit travis-brewed 5.10 smoke and
add extra randomness to the testing order in t/750firebird.t

Tested to bits with:

--- a/maint/travis-ci_scripts/40_script.bash
+++ b/maint/travis-ci_scripts/40_script.bash
@@ -28,15 +28,17 @@ if [[ "$CLEANTEST" = "true" ]] ; then
   run_or_err "Prepare blib" "make pure_all"
   run_harness_tests
 else
-  PROVECMD="prove -lrswj$VCPU_USE xt t"
+  PROVECMD="prove -lrswj$VCPU_USE t/750firebird.t"

   # FIXME - temporary, until Package::Stash is fixed
   if perl -M5.010 -e 1 &>/dev/null ; then
     PROVECMD="$PROVECMD -T"
   fi

+  for f in $(seq 200) ; do
     echo_err "$(tstamp) running tests with \`$PROVECMD\`"
     $PROVECMD 2> >(tee "$TEST_STDERR_LOG")
+  done
 fi
 TEST_T1=$SECONDS

Results at: https://travis-ci.org/ribasushi/dbix-class/builds/100894293

8 years agoThe complete fix for intermittent t/750firebird.t failures (RT#110979)
Peter Rabbitson [Thu, 7 Jan 2016 17:26:02 +0000]
The complete fix for intermittent t/750firebird.t failures (RT#110979)

It makes no sense to throw values away in case the finish() failed - they are
good regardless. Not sure what I was thinking at the time :(

See also next commit

8 years ago(deplist) Make it clear which non-existent yet known directories are in @INC
Peter Rabbitson [Sat, 20 Jun 2015 13:51:57 +0000]
(deplist) Make it clear which non-existent yet known directories are in @INC

Also add explicit xt/ entries (not that I've seen this in the wild)

8 years ago(travis) Make sure we really test everything when using cpanm (devrels)
Peter Rabbitson [Thu, 7 Jan 2016 15:55:46 +0000]
(travis) Make sure we really test everything when using cpanm (devrels)

This is to work around https://github.com/miyagawa/cpanminus/issues/462

Note: even if cpanm itself gets fixed, it will take forever for changes to
trickle down to various travis builds (currently 4 different configurations)

8 years ago(travis) Work around RT#110882
Peter Rabbitson [Thu, 7 Jan 2016 15:35:06 +0000]
(travis) Work around RT#110882

8 years ago(travis) Adjust test infrastructure for recent extensive TravisCI changes
Peter Rabbitson [Wed, 16 Dec 2015 21:32:47 +0000]
(travis) Adjust test infrastructure for recent extensive TravisCI changes

I mean who does that?!?!
https://docs.travis-ci.com/user/ci-environment/#Virtualization-environments

This is an initial pass to get things moving again, one more overhaul needs to
take place based on 7f6d73eb. For now just make sure we run under both sudo
and non-sudo, and be explicit which platform are we running on.

Read diff under -w

8 years ago(travis) Fix version check on non-module-named dists (lapse from a223f7584)
Peter Rabbitson [Tue, 1 Dec 2015 22:43:39 +0000]
(travis) Fix version check on non-module-named dists (lapse from a223f7584)

8 years ago(travis) Work around RT#107392
Peter Rabbitson [Tue, 1 Dec 2015 22:04:44 +0000]
(travis) Work around RT#107392

9 years agoFix POD typo
Vadim Pushtaev [Fri, 13 Nov 2015 09:19:11 +0000]
Fix POD typo

9 years agoFix typo
Zoffix Znet [Mon, 9 Nov 2015 02:40:18 +0000]
Fix typo

9 years agoMove the rows/offset sanity checks from DBI to _resolved_attrs
Peter Rabbitson [Wed, 4 Nov 2015 04:02:04 +0000]
Move the rows/offset sanity checks from DBI to _resolved_attrs

Doing this much earlier should tie all loose ends wrt rows => 0 (sigh...)

9 years agoReplace \D with [^0-9] in sensitive spots
Peter Rabbitson [Wed, 4 Nov 2015 03:42:17 +0000]
Replace \D with [^0-9] in sensitive spots

9 years ago(travis) Do not run the git authorship check within a github PR
Peter Rabbitson [Tue, 3 Nov 2015 17:35:03 +0000]
(travis) Do not run the git authorship check within a github PR

Before running the CI test github "helpfully" generates a merge-commit,
which uses the email as listed in the github profile, NOT using the
email/name as seen on the merged commit itself. This can cause the entire
thing to fail for no apparent reason

Since any PR is scrutinized and tested to bits after the fact - skipping
the test is safe

Read under -w

9 years agoReally make sure xt/ tests run on non-plain installs (fix c26b30de)
Peter Rabbitson [Tue, 3 Nov 2015 14:32:08 +0000]
Really make sure xt/ tests run on non-plain installs (fix c26b30de)

FACEDESK: Module::Install::Makefile::tests_recursive() takes a single arg and
throws the rest away... I mean what the flying...

Also remove some of the "is this plain user" checks from within xt/

Read under -w

9 years agoAdjust view-dependency tests to work on newer libsqlite
Peter Rabbitson [Tue, 3 Nov 2015 13:35:35 +0000]
Adjust view-dependency tests to work on newer libsqlite

The test and mechanism behind it is largely useless in these cases, but old
sqlite installations will lurk around for ever, so keep the check while moving
it to xt/

9 years agoFix spurious ROLLBACK statements when a TxnScopeGuard fails a deferred commit
Peter Rabbitson [Tue, 3 Nov 2015 12:23:52 +0000]
Fix spurious ROLLBACK statements when a TxnScopeGuard fails a deferred commit

This is a *temporary workaround*, and I am really unhappy about it... it just
feels wrong. See the comment in lib/DBIx/Class/Storage/TxnScopeGuard.pm

9 years agoFix oversight in 096ab902 breaking { -value => $array } insertion
Peter Rabbitson [Wed, 20 May 2015 13:25:06 +0000]
Fix oversight in 096ab902 breaking { -value => $array } insertion

This was never tested for, but also never shipped

9 years agoStop requiring explicit bindtype specification for non-scalar references
Peter Rabbitson [Tue, 3 Nov 2015 10:47:34 +0000]
Stop requiring explicit bindtype specification for non-scalar references

As ilmari correctly pointed out this is not necessary, I am not sure why I
didn't catch this on review...

<ilmari> ribasushi: why does DBIC think every DBD needs speical attrs to bind non-scalar values?
<ilmari> DBD::Pg handles binding arrayrefs autmoatically
<ribasushi> ilmari: at the time this was written DBD::Pg *did not* auto-infer bindtype for arrays, that's a relatively new thing
<ribasushi> ilmari: hmmm... this does not seem to be the case, will dig deeper...

9 years agoFix failures and protect the suite from spurious VERSION-related warnings
Peter Rabbitson [Sun, 1 Nov 2015 12:08:12 +0000]
Fix failures and protect the suite from spurious VERSION-related warnings

A new SQL::Translator devrel missed a s/_// line and made several tests fail

Fix t/752sqlite.t and t/icdt/offline_pg.t, and also add an obnoxious CI mode
to ensure we will not fall prey to this again

9 years agoFix bizarre segfault on older perls, not seen on CI ( augments d63c9e64 )
Peter Rabbitson [Mon, 2 Nov 2015 22:50:17 +0000]
Fix bizarre segfault on older perls, not seen on CI ( augments d63c9e64 )

9 years agoFix test failure on 5.8.x with DBIC_TRACE=1 (introduced by 68b8ba54)
Peter Rabbitson [Tue, 3 Nov 2015 08:53:56 +0000]
Fix test failure on 5.8.x with DBIC_TRACE=1 (introduced by 68b8ba54)

The CI run did not smokje this particular combination
TLDR: like ... qr/.../m does not work on 5.8.x due to P5#3038

9 years agoSkip spurious compiler-related error with old DBD::SQLite and new gcc
Peter Rabbitson [Sun, 1 Nov 2015 11:29:11 +0000]
Skip spurious compiler-related error with old DBD::SQLite and new gcc

9 years agoFINALLY find and fix the elusive parallel test deadlock
Peter Rabbitson [Mon, 2 Nov 2015 21:05:04 +0000]
FINALLY find and fix the elusive parallel test deadlock

For more details see https://rt.cpan.org/Ticket/Display.html?id=108390

9 years agoFix fail with DBICTEST_DEBUG_CONCURRENCY_LOCKS set (thinko in 69016f65)
Peter Rabbitson [Mon, 2 Nov 2015 20:56:45 +0000]
Fix fail with DBICTEST_DEBUG_CONCURRENCY_LOCKS set (thinko in 69016f65)

9 years agoStop using bare $] throughout - protects the codebase from floating point hell
Peter Rabbitson [Fri, 9 Oct 2015 10:04:45 +0000]
Stop using bare $] throughout - protects the codebase from floating point hell

Issues similar, but likely not limited to, P5#72210 ( see prev commit)

9 years ago(travis) One more addition to the smoke-devrel family: 5.8.8 with long-doubles
Peter Rabbitson [Fri, 9 Oct 2015 09:48:45 +0000]
(travis) One more addition to the smoke-devrel family: 5.8.8 with long-doubles

This one to catch fallout of https://rt.perl.org/Ticket/Display.html?id=72210

9 years ago(travis) Now that File:Path is fixed, test the distbuild deps under devrel
Peter Rabbitson [Fri, 9 Oct 2015 12:21:46 +0000]
(travis) Now that File:Path is fixed, test the distbuild deps under devrel

This is not strictly necessary for anything I do, just add even more smoke
coverage to some pieces of the ecosystem (at the expense of extra 5 minutes,
but given it's in the "fail-ok" blocks - meh)

9 years agoAdd comprehensive concurrent-test-locking logging to aid future debugging
Peter Rabbitson [Thu, 8 Oct 2015 07:40:25 +0000]
Add comprehensive concurrent-test-locking logging to aid future debugging

9 years ago(travis) Minimize MySQL config further - even less chance of OOMs
Peter Rabbitson [Tue, 6 Oct 2015 13:54:55 +0000]
(travis) Minimize MySQL config further - even less chance of OOMs

Although in reality it is the preceeding commits that make the real difference

9 years ago(travis) Stop using the ramdisk for MySQL/Pg data
Peter Rabbitson [Thu, 8 Oct 2015 23:01:34 +0000]
(travis) Stop using the ramdisk for MySQL/Pg data

Given the very low amount of RAM, the travis setup DOES NOT HELP. Instead of
fishing out the changed configs, just symlink the dirs back where they belong

9 years ago(travis) When running under CI make t/storage/quote_names.t respect locking
Peter Rabbitson [Thu, 8 Oct 2015 07:30:06 +0000]
(travis) When running under CI make t/storage/quote_names.t respect locking

Without this too many connections are fired at the MySQL and tasty OOMs occur

9 years agoReduce amount of initial connects during non-SQLite test-RDBMS lock-grabs
Peter Rabbitson [Wed, 7 Oct 2015 11:39:46 +0000]
Reduce amount of initial connects during non-SQLite test-RDBMS lock-grabs

I am not sure why I wrote things this way back in 8d6b1478d, perhaps I didn't
properly think through that sqlt_type will be correctly determined no matter
what. As a result any MySQL test would connect at least once, and under the
right circumstances consume enough per-connection-thread memory to get a
low-RAM system (like TravisCI) to start OOM-killing things indiscriminately.

9 years agoSwitch several caller() invocations to explicit CORE::caller()
Peter Rabbitson [Thu, 8 Oct 2015 19:18:49 +0000]
Switch several caller() invocations to explicit CORE::caller()

This not only fixes an obscure test failure due to an older Sub::Uplevel
(it would be too obnoxious to bump the dep just for the test case), but also
makes the entire codebase more robust in light of possible rogue/incomplete
caller() overrides

This was not a simple s/// job - each change was manually evaluated before
carrying out

Also while at it - fix the utterly annoying *UNKNOWN* eception site-marker:
it does not add any information and only confuses things. The heuristics in
Carp::Skip is supposed to be much much clearer, need to finish its tests...

9 years agoClarify comments/documentation regarding DBIC/SQLA/DQ relationship
Peter Rabbitson [Thu, 15 Oct 2015 15:32:34 +0000]
Clarify comments/documentation regarding DBIC/SQLA/DQ relationship

This discussion comes up several times per year, just put it to bed for good

9 years agoEven more aggressive streamline of SQL scanning in _resolve_aliastypes
Peter Rabbitson [Mon, 28 Sep 2015 15:58:07 +0000]
Even more aggressive streamline of SQL scanning in _resolve_aliastypes

No longer try to match individual pieces at all, simply treat every single
fragment as a single string. While rather barbaric, we are doing it anyway
in order to catch fragments, thus it makes no sense to keep the "proper"
codepath at all.

This concludes the shenanigans in this function

9 years agoSave one _resolve_aliastypes in the case of a subqueried prefetch
Peter Rabbitson [Mon, 28 Sep 2015 10:55:01 +0000]
Save one _resolve_aliastypes in the case of a subqueried prefetch

Instead reuse a previously calculated one, since the code flow allows it

There *seem* to be no functional changes, but one never knows...

9 years agoInstead of assembling many small regexes scan all the SQL in one pass
Peter Rabbitson [Tue, 22 Sep 2015 02:11:27 +0000]
Instead of assembling many small regexes scan all the SQL in one pass

Speeds up the analyzer massively, now it's mostly SQLA itself holding things
back... sigh

9 years agoA little more golfing - this time ::DBIHacks::_resolve_column_info
Peter Rabbitson [Mon, 28 Sep 2015 13:34:12 +0000]
A little more golfing - this time ::DBIHacks::_resolve_column_info

More surprising stuff showing up on the profiles...

9 years agoScanning strings piecemeal makes no sense - join them up
Peter Rabbitson [Tue, 22 Sep 2015 01:48:42 +0000]
Scanning strings piecemeal makes no sense - join them up

Read under -w

9 years agoAnother rewrap in ::DBIHacks::_resolve_aliastypes_from_select_args
Peter Rabbitson [Tue, 22 Sep 2015 00:31:17 +0000]
Another rewrap in ::DBIHacks::_resolve_aliastypes_from_select_args

No functional changes at all, just more efficient loops
Read under -w

9 years agoSimplify DBIHacks order_by scan generator
Peter Rabbitson [Mon, 21 Sep 2015 23:35:29 +0000]
Simplify DBIHacks order_by scan generator

There is no need to call out all the way to _extract_order_criteria -
we can do the necessary mangling ourselves

9 years agoNormalize _parse_rs_attrs - no functional changes
Peter Rabbitson [Mon, 21 Sep 2015 20:30:56 +0000]
Normalize _parse_rs_attrs - no functional changes

9 years agoThe weird scan-for-binds-before-scan was obviated by a9e985b7
Peter Rabbitson [Mon, 21 Sep 2015 20:22:15 +0000]
The weird scan-for-binds-before-scan was obviated by a9e985b7

Tighten up code while at it, no functional changes intended

9 years agoSimplify debugfh rebuilding after clearing
Dagfinn Ilmari Mannsåker [Sat, 29 Aug 2015 19:09:38 +0000]
Simplify debugfh rebuilding after clearing

9 years agoFix invalid variable names in ResultSource::View examples
Dagfinn Ilmari Mannsåker [Fri, 18 Sep 2015 10:31:45 +0000]
Fix invalid variable names in ResultSource::View examples

9 years ago(travis) Add a dev-rel non-clean test (with distbuilding) on really old perl
Peter Rabbitson [Thu, 10 Sep 2015 17:58:59 +0000]
(travis) Add a dev-rel non-clean test (with distbuilding) on really old perl

The *really* old version is needed to make sure we end up upgrading as much
stuff as possible, thus hopefully trapping more dev-rel problems before they
end up on CPAN

( absence of this entry caused EUMM@7.06 to slip by unnoticed )

9 years ago(travis) Revert pin of Sub::Identify (57947c1e)
Peter Rabbitson [Thu, 10 Sep 2015 17:54:13 +0000]
(travis) Revert pin of Sub::Identify (57947c1e)

9 years ago(travis) Enhance checks (and diag) whether a core module did in fact upgrade
Peter Rabbitson [Wed, 9 Sep 2015 19:33:34 +0000]
(travis) Enhance checks (and diag) whether a core module did in fact upgrade

9 years agoTrap exact condition of reported, yet undiagnosed IDENTITY_SELECT
Peter Rabbitson [Thu, 10 Sep 2015 15:56:55 +0000]
Trap exact condition of reported, yet undiagnosed IDENTITY_SELECT

Something is popagating the _autoinc_supplied_for_op flag where it shouldn't

9 years agoFix ::Sybase::ASE incorrect attempt to retrieve an autoinc on blob inserts
Tina Mueller [Wed, 29 Jul 2015 14:36:28 +0000]
Fix ::Sybase::ASE incorrect attempt to retrieve an autoinc on blob inserts

This is a temporary fixup, will be better taken care of with the lobwriter
  --ribasushi

9 years agoGreatly simplify the ::Sybase::ASE::insert() override
Peter Rabbitson [Thu, 10 Sep 2015 15:02:09 +0000]
Greatly simplify the ::Sybase::ASE::insert() override

The _insert sub-method actually isn't used by anything else, and as such is
not needed. The behavior has been verified to be identical by comparing
DBIC_TRACE=1=logfile runs before and after the changes.

Still - there may be dragons, if bisecting pay close attention to this fella

9 years agoFirst pass on Sybase::ASE - reformats and minor cleanups for future commits
Peter Rabbitson [Thu, 10 Sep 2015 10:58:27 +0000]
First pass on Sybase::ASE - reformats and minor cleanups for future commits

No functional changes were intended

9 years agoTrap expected t/746sybase.t warnings, use LC_ALL instead of LANG
Peter Rabbitson [Fri, 14 Aug 2015 05:22:33 +0000]
Trap expected t/746sybase.t warnings, use LC_ALL instead of LANG

9 years agoSwitch the ::Sybase family to _determine_connector_driver (same as 75d3bdb2)
Peter Rabbitson [Fri, 14 Aug 2015 04:51:13 +0000]
Switch the ::Sybase family to _determine_connector_driver (same as 75d3bdb2)

Simplify test a bit

9 years agoFix failing tests with DBICTEST_SYBASE_DSN set
Peter Rabbitson [Fri, 14 Aug 2015 03:31:52 +0000]
Fix failing tests with DBICTEST_SYBASE_DSN set

t/746sybase.t - broken by 2a6dda4b
t/storage/quote_names.t - implicitly broken by an oversight in f9b5239a

Sigh

9 years agoSilence warning introduced in sloppy workaround e9505615
Peter Rabbitson [Mon, 7 Sep 2015 15:40:49 +0000]
Silence warning introduced in sloppy workaround e9505615

9 years agoNot sure what I was thinking, but 18637ebb never worked :/
Peter Rabbitson [Fri, 14 Aug 2015 04:41:57 +0000]
Not sure what I was thinking, but 18637ebb never worked :/

While at it work around the newly-discovered RT#106935

9 years ago(travis) Pin Sub::Identify until RT#106929 is fixed
Peter Rabbitson [Mon, 7 Sep 2015 13:43:49 +0000]
(travis) Pin Sub::Identify until RT#106929 is fixed

9 years agoWork around EUMM 7.06 creating an empty blib/ dir, breaking prove -lr
Peter Rabbitson [Mon, 7 Sep 2015 10:53:00 +0000]
Work around EUMM 7.06 creating an empty blib/ dir, breaking prove -lr

9 years agoEnsure the stack properly deals and warns on Null-Pattern exception objects
Konstantin A. Pustovalov [Mon, 21 Jan 2013 20:40:58 +0000]
Ensure the stack properly deals and warns on Null-Pattern exception objects

Reuse the existing is_exception() utility to catch any and all instances of
objects stringifying to "" before passing them onwards

9 years agoEnhance exception action test (no functional changes)
Konstantin A. Pustovalov [Mon, 21 Jan 2013 20:40:58 +0000]
Enhance exception action test (no functional changes)

9 years agoAdd is_exception check to the result of exception_action (inspired by GHPR#15)
Peter Rabbitson [Mon, 10 Aug 2015 15:29:05 +0000]
Add is_exception check to the result of exception_action (inspired by GHPR#15)

This builds upon work in 841efcb3 and 9bea2000, tying loose ends before next
commits

Read under -w

9 years agoMerge branch 'current/for_cpan_index' into current/blead
Peter Rabbitson [Thu, 13 Aug 2015 11:55:47 +0000]
Merge branch 'current/for_cpan_index' into current/blead

9 years agoConvert the m2m helper generation to Sub::Quote (as in 8d73fcd4)
Peter Rabbitson [Sun, 20 Jul 2014 14:54:58 +0000]
Convert the m2m helper generation to Sub::Quote (as in 8d73fcd4)

This was left for a later time, which is about now, after the multiple passes
through the actual (terrible) code

Read under -w, should contain zero functional changes

9 years agoMore reshuffling of the m2m helper code - no functional changes intended
Peter Rabbitson [Thu, 13 Aug 2015 10:36:06 +0000]
More reshuffling of the m2m helper code - no functional changes intended

This is in preparation for the next commit switchin to qsubs

9 years agoAdd missing deprecation warnings on m2m set_*, tighten up code
Peter Rabbitson [Thu, 13 Aug 2015 09:40:55 +0000]
Add missing deprecation warnings on m2m set_*, tighten up code

Back in the day 4d3a827d had the right idea but did not implement actual
deprecation carp()s. Then ac36a402 added support for a link-data arg, making
things even murkier... sigh.

9 years agoConvert the m2m helper generation to Sub::Quote (as in 8d73fcd4)
Peter Rabbitson [Sun, 20 Jul 2014 14:54:58 +0000]
Convert the m2m helper generation to Sub::Quote (as in 8d73fcd4)

This was left for a later time, which is about now, after the multiple passes
through the actual (terrible) code

Read under -w, should contain zero functional changes

9 years agoMore reshuffling of the m2m helper code - no functional changes intended
Peter Rabbitson [Thu, 13 Aug 2015 10:36:06 +0000]
More reshuffling of the m2m helper code - no functional changes intended

This is in preparation for the next commit switchin to qsubs

9 years agoAdd missing deprecation warnings on m2m set_*, tighten up code
Peter Rabbitson [Thu, 13 Aug 2015 09:40:55 +0000]
Add missing deprecation warnings on m2m set_*, tighten up code

Back in the day 4d3a827d had the right idea but did not implement actual
deprecation carp()s. Then ac36a402 added support for a link-data arg, making
things even murkier... sigh.

9 years agoMultiple common sense fixes for m2m accessors
Peter Rabbitson [Sun, 5 Jul 2015 14:38:58 +0000]
Multiple common sense fixes for m2m accessors

Notably ensure set_X is executed in a transaction, and remove the erroneous
call to _resolve_condition introduced back in 303cf522 and never questioned
since

9 years agoExpand (and complicate) m2m test from e98e6478
Peter Rabbitson [Sun, 5 Jul 2015 10:16:46 +0000]
Expand (and complicate) m2m test from e98e6478

There are no logical changes, the only real addition is the
extra opaque relcond in the middle

9 years agoChange incomprehensible names of test relationships from e98e6478
Peter Rabbitson [Sun, 5 Jul 2015 09:48:35 +0000]
Change incomprehensible names of test relationships from e98e6478

No functional changes yet, just renames

9 years agoRewrite incredibly overcomplicated add_X m2m helper
Peter Rabbitson [Sun, 5 Jul 2015 14:27:01 +0000]
Rewrite incredibly overcomplicated add_X m2m helper

Goal was no functional changes, but one never knows - original code was...
rather peculiar

9 years agoRedo badly named constant folding arg introduced in 8d73fcd4
Peter Rabbitson [Thu, 16 Jul 2015 08:19:39 +0000]
Redo badly named constant folding arg introduced in 8d73fcd4

No functional changes

9 years agoStreamline (logic-wise, not syntax-wise) handling of 'foreign_values'
Peter Rabbitson [Sun, 5 Jul 2015 12:20:40 +0000]
Streamline (logic-wise, not syntax-wise) handling of 'foreign_values'

No functional changes, just some extra sanity checks

9 years agoEven though I personally added these in 4f8c9678 I no longer recall why
Peter Rabbitson [Sun, 5 Jul 2015 14:48:27 +0000]
Even though I personally added these in 4f8c9678 I no longer recall why

9 years agoSwitch a couple 'no-brainer' spots to _resolve_relationship_condition
Peter Rabbitson [Fri, 3 Jul 2015 13:23:14 +0000]
Switch a couple 'no-brainer' spots to _resolve_relationship_condition

More to come, all of this should result in no functional changes

9 years agoRemove ability to hand an explicit condition to resolve_relationship_condition
Peter Rabbitson [Fri, 3 Jul 2015 12:15:35 +0000]
Remove ability to hand an explicit condition to resolve_relationship_condition

Less moving parts this way, and the only use-cases within the test suite are
all straight from bizarro-land

Read under -w

9 years agoMake sure array-relconds edge case is handled properly
Peter Rabbitson [Fri, 3 Jul 2015 11:39:24 +0000]
Make sure array-relconds edge case is handled properly

Hopefully nobody in the wild is using this... hahaha who am I kidding. Anyway
being thorough before subsequent commits

9 years agoBring in line behavior of related_resultset() on both $rs and $result
Peter Rabbitson [Fri, 26 Jun 2015 14:37:20 +0000]
Bring in line behavior of related_resultset() on both $rs and $result

The original problematic behavior on $result was introduced back in 64acc2bc
and never noticed since :(

9 years agoMinor op reorder in ::ResultSet::related_resultset
Peter Rabbitson [Fri, 26 Jun 2015 14:14:31 +0000]
Minor op reorder in ::ResultSet::related_resultset

This *should* be entirely transparent, but there may be dragons...
Read under -w

9 years agoRemove no longer needed try{} block in related rel instantiation
Peter Rabbitson [Wed, 24 Jun 2015 11:04:28 +0000]
Remove no longer needed try{} block in related rel instantiation

This try{} is no longer necessary after 3b4c4d72, but was missed due to
its purpose not being readily apparent. The only known case where this
exception could be raised and be silenced is if an uninserted object had
some filter relations populated directly via {_inflated_column} *before*
related_resultset() has ever been called. This would result in a cascade
of failures during the relationship resolution, and bubble up here.

Starting with 3b4c4d72 the empty related resultset is instantiated ahead
of time, and everything works properly from there on.

In the unlikely case this does cause issues downstream, a way will be
found to address this ( worst case scenario by reintroducing the try{} )

9 years agoRemove dead code from CDBICompat::ImaDBI
Peter Rabbitson [Wed, 24 Jun 2015 07:43:19 +0000]
Remove dead code from CDBICompat::ImaDBI

This is a forgotten piece from back in 902133a3, overtaken by a local copy of
Class::DBI::SQL::Transformer. Nothing called/exercised it since then

9 years agoSimplify and rename _resolve_prefetch
Peter Rabbitson [Tue, 23 Jun 2015 11:04:49 +0000]
Simplify and rename _resolve_prefetch

No functional changes, just logic and arglist cleanup - a couple of them were
no longer used: $order was forgotten in d4d8e97b, and the alias-prefix went
unused somewhere around that time as well

9 years agoMove prefetch selector injection a bit further down in rsattr resolution
Peter Rabbitson [Tue, 23 Jun 2015 10:16:54 +0000]
Move prefetch selector injection a bit further down in rsattr resolution

No functional changes, just a c/p

9 years agoStop importing all the POSIX functions
Dagfinn Ilmari Mannsåker [Wed, 3 Jun 2015 20:40:06 +0000]
Stop importing all the POSIX functions

The only one used is called fully-qualified anyway

9 years agoFix t/storage/quote_names.t failures, caused by lazily built sqlmaker
Dagfinn Ilmari Mannsåker [Wed, 27 May 2015 07:39:58 +0000]
Fix t/storage/quote_names.t failures, caused by lazily built sqlmaker

While the entire test is written badly (it ought to use the OptDeps system)
it would be too much churn to fix it properly for little benefit. Additionally
there is a very good chance that the shortener will become a core dep in the
near future, hence the entire point will soon be moot anyway --ribasushi