8 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

8 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

8 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.

8 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

8 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

8 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.

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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 :(

8 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

8 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{} )

8 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

8 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

8 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

8 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

8 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

8 years agoAdd extra (passing) test for operations on sourceless results
Peter Rabbitson [Wed, 20 May 2015 14:11:39 +0000]
Add extra (passing) test for operations on sourceless results

This should have been committed with 84b1ec108, reevaluated while reading
through cb909f39c of GH#78

8 years agoReplace all instances of ; in the rowparser loop with , ( ~15% speedup )
Peter Rabbitson [Wed, 20 May 2015 13:25:06 +0000]
Replace all instances of ; in the rowparser loop with , ( ~15% speedup )

The functional diff best examined via `... --color-words -w lib ...`

This is another microoptimization, which is nevertheless measurable on 1000+
row resultsets. Investigation into this was prompted by a curious comment made
by bulk88[1] in response to Glenn Golden[2]:

  Every ";" is an op that executes that adjusts current line number

Given that we already generate all this code, and it is not intended to be
read by a human, swapping ; with , is only logical. A (very very crude) check
with the included benchmarker indeed shows a repeatable difference on 5.16.2

[1] http://www.nntp.perl.org/group/perl.perl5.porters/2015/05/msg228074.html
[2] http://www.nntp.perl.org/group/perl.perl5.porters/2015/05/msg228068.html

8 years agoRewrite collapsing parser while loop (mere op-level golf)
Peter Rabbitson [Tue, 3 Mar 2015 23:06:47 +0000]
Rewrite collapsing parser while loop (mere op-level golf)

8 years agoThe encode-and-substitute in the generator is not necessary since a8f62ee08
Peter Rabbitson [Thu, 26 Feb 2015 13:22:39 +0000]
The encode-and-substitute in the generator is not necessary since a8f62ee08

8 years agoRewrite the collapsing rowparser pigeonholing logic
Peter Rabbitson [Thu, 26 Feb 2015 12:51:49 +0000]
Rewrite the collapsing rowparser pigeonholing logic

Instead of dynamically determining whether to use the data as a key directly,
always compose a list of copied 'row ids' and use that in all operations.

This is mainly done to stop dualvar-ing of numeric variables returned by the
engine, thus confusing JSON and similar serializers down the road

8 years ago(travis) Add Schmorp's "stable perl" fork to the smoke rosters
Peter Rabbitson [Sun, 7 Jun 2015 11:49:50 +0000]
(travis) Add Schmorp's "stable perl" fork to the smoke rosters

A note on motivation: I personally fully support Marc Lehmann's assertion
that the current direction of the perl5 development effort leaves a lot to
be desired (put in the mildest terms possible). The amount of changes[1]
necessary to get a *very* widely used module working again, and the failure
of the original authors to abandon the problematic direction *on their own*
is nothing short of an embarrassment. I fully recognize the reason why Marc
elected to attempt to maintain a fork (a nontrivial long-term commitment),
instead of engaging in another round of politicking and downright begging.

The inclusion of "stability perl" in the DBIC full-test matrix is the very
least I can do to support this effort.
                                                            --ribasushi

[1] http://stableperl.schmorp.de/dist/stableperl-5.22.0-1.001.diff

8 years ago(travis) Add explicit sudo:true to .travis.yml
Georgina Thevenet [Fri, 27 Mar 2015 18:35:54 +0000]
(travis) Add explicit sudo:true to .travis.yml

The 'sudo' setting now defaults to false on establishing of new github=>travis
linkages, so the CI runs will fail for anyone who wants to smoke their own
fork.

8 years agoMake sure tests pass without a compiler present (another step to RT#74706)
Peter Rabbitson [Tue, 19 May 2015 03:49:48 +0000]
Make sure tests pass without a compiler present (another step to RT#74706)

8 years agoMake sure tests still pass in a fork-limited environment
Peter Rabbitson [Wed, 10 Jun 2015 14:18:01 +0000]
Make sure tests still pass in a fork-limited environment

Inspired by a temporarily stuck smoker
http://www.cpantesters.org/cpan/report/751da1f2-e3ff-11e4-a1d1-8536eb4f9f07

Read under -w

8 years agoMake sure plain install with DBICTEST_VIA_REPLICATED=1 still works
Peter Rabbitson [Fri, 3 Apr 2015 11:30:27 +0000]
Make sure plain install with DBICTEST_VIA_REPLICATED=1 still works

This is an omission from fd2c6658, unnoticed all the way until previous commit

8 years ago(travis) Multiple fixups to the CI lifted from blead:
Peter Rabbitson [Thu, 2 Apr 2015 01:04:24 +0000]
(travis) Multiple fixups to the CI lifted from blead:

 - Much lighter CI runs when smoking a PR
 - Revert backout of ODBC firebird testing aa0e82a2
 - Restore and enhance post-success to run a full CPAN install cycle
 - Cut down the amount of APT repos during updates
 - *FINALLY* remove Module::Build::Tiny front-loading
 - Double check M::B::T is not pulled in
 - Peg Module::Install - new versions deps on autodie, which is 5.8.4+
 - Enhance perl sterilization to somewhat work on < 5.12 as well
 - Correctly detect CI on github forks
 - Improve the "Did it really install?" check
 - Better shuffling of the prereq installation order
 - Fix silencer changes (f8200928) which were practically undone by 8b60b921

8 years agoThis is no longer necessary after 4068e05f
Peter Rabbitson [Thu, 30 Apr 2015 16:53:25 +0000]
This is no longer necessary after 4068e05f

8 years agoFix missing handling of on_(dis)connect* failures
Peter Rabbitson [Fri, 3 Apr 2015 22:18:39 +0000]
Fix missing handling of on_(dis)connect* failures

Time for a short story (see last paragraph for TL;DR): Some hours ago an
innocent question was asked in the #dbix-class channel, apparently
related to a mysterious failure to determine the RDBMS version. Before I
was able to properly investigate the problem, someone else piped up with
"Oh I've seen this before, and I worked around it". That was of course
without telling anyone else </headdesk>

After a little back and forth it became apparent that if the on_connect
settings could not be executed for whatever reason, the result may be an
implicitly failed connection attempt which is *entirely undetected* as
it leaves the original $dbh in place with some or all of the on_connect
instructions not having executed as expected.

To reiterate: if one manages to:
 * supply a malformed on_connect*
and then
 * call as the first order of business some codepath that can mask away
   the connection failure (say ->deploy under sqlite)
then the result is a $schema with a proper $dbh in the storage instance,
but *without* some (or all) of the on_connect instructions having been
executed. As a bonus the actual call to get e.g. the RDBMS metadata (like
version etc) will have failed completely silently as well. Arguably a
rather problematic bug.

The above and by extension an issue with silent on_disconnect* failures
are bith fixed by this commit. This was possible *only* because the
second person came into the channel and reported it, instead of silently
fixing things and moving on to whatever they were doing.

Moreover while preparing the (relatively modest) patch to fix this issue,
a small refactor revealed a pretty serious bug in the XS accessor provider
Class::XSAccessor: https://rt.cpan.org/Ticket/Display.html?id=103296
Yes, it took about 3 hours to diagnose this and hunt down an isolated
failcase, but the bug severety (and its elegance) are totally worth it.

Moral of the story: *PLEASE* report issues upstream. Even if you figured
out a quick workaround, the devs still need to know about the problem you
did encounter in the first place. Bugs that nobody knows about can *NOT*
be fixed, and our software commons can not improve. So *PLEASE* speak up.

8 years agoMinor code reformat, to shorten the diff of next commit
Peter Rabbitson [Fri, 3 Apr 2015 22:14:00 +0000]
Minor code reformat, to shorten the diff of next commit

Zero functional changes, read under -w

8 years agoFix corner case of stringify-only overloaded values
Peter Rabbitson [Mon, 27 Apr 2015 10:23:34 +0000]
Fix corner case of stringify-only overloaded values

Just a trivial cleanup, uncovered during the de-Path::Class work

8 years agoRewrite dependency lister - now produces *much* easier to read output
Peter Rabbitson [Sun, 5 Apr 2015 11:52:11 +0000]
Rewrite dependency lister - now produces *much* easier to read output

Knowing where a module came from is quite valuable, but the segmentation done
in cebc0cc8 makes it rather hard finding a particular module. Instead add
an extra prefix with shorthand "dirs of interest" names, and putput the entire
list in ci-alphabetical order.

Additionally make sure we explicitly print out our versions under CI (a silly
omission from earlier), and explicitly omit loading dist_* optdeps

The rough list of changes:
  - Explicitly report expected but failed-to-load modules
  - Add knowledge of './t' => T, under same rules as LIB
  - Add support for (site|vendor)lib_stem (whatever that is)
  - Add support for (site|vendor)prefix
  - Add support for ./blib/(lib|arch)
  - Add support for an explicit CWD marker
  - When no sourcing is found - report the @INC index if possible
  - If a module came from {SVP}{AL}, list it even if no version is defined
  - Explain missing checksums
  - Display the contents of @INC, making it even easier to follow sourcing

While the diff is massive, the actual logic did not change in any significant
way.

8 years agoUpdate Changes with stuff already shipped to CPAN as v0.082810 and v0.082820
Peter Rabbitson [Fri, 3 Apr 2015 12:55:24 +0000]
Update Changes with stuff already shipped to CPAN as v0.082810 and v0.082820

8 years agoDo not load PadWalker at all on plain installs
Kent Fredric [Thu, 2 Apr 2015 11:54:19 +0000]
Do not load PadWalker at all on plain installs

Avoids a SEGV on perls with unusual compilation options

8 years agoWork around Firebird/InterBase/ODBC crash in tests
Dagfinn Ilmari Mannsåker [Wed, 1 Apr 2015 17:52:22 +0000]
Work around Firebird/InterBase/ODBC crash in tests

If DBD::Firebird and DBD::InterBase are used in the same process, the
last one loaded leaves an active statement handle around and later
segfaults at some point in the tests.  Also, if DBD::ODBC is used
before either of them, they leak the handle but don't segfault.

Thus, to avoid breaking installing DBIC if more than one of
DBICTEST_FIREBIRD(_INTERBASE|ODBC)?_DSN is set, skip Interbase if any
of the others are set, and make sure to run the ODBC test last.

However, keep the leak-triggering order for author, CI and smoker
runs, so we don't forget that it needs fixing.

8 years agoAdd an explicit DateTime::TimeZone::OlsonDB optdep
Peter Rabbitson [Sun, 5 Apr 2015 12:41:56 +0000]
Add an explicit DateTime::TimeZone::OlsonDB optdep

It happens to lazy-load a lot of extra modules, which both hides them from the
t/00describe_encironment lister *and* messes with preforking.

8 years ago(optdeps) Explicitly force group names to lower-case (for now)
Peter Rabbitson [Mon, 4 May 2015 13:44:00 +0000]
(optdeps) Explicitly force group names to lower-case (for now)

8 years ago(optdeps) Rename an inconsistent 'icdt' marker to 'ic_dt' before we've shipped it
Peter Rabbitson [Mon, 27 Apr 2015 09:01:29 +0000]
(optdeps) Rename an inconsistent 'icdt' marker to 'ic_dt' before we've shipped it

8 years ago(optdeps) Skip-spec brainfart in offline mysql/pg test specs
Peter Rabbitson [Mon, 27 Apr 2015 08:54:21 +0000]
(optdeps) Skip-spec brainfart in offline mysql/pg test specs

The _-prefix played a role in an earlier deficient implementation, which
was later thrown away. Make the relevant tests require-lines saner

8 years ago(optdeps) Fix incorrect optdep output introduced in 34d2deae / 31c31b8d
Peter Rabbitson [Wed, 1 Apr 2015 20:52:41 +0000]
(optdeps) Fix incorrect optdep output introduced in 34d2deae / 31c31b8d

Too many thinkos for a simple feature like this. When given "foo" cpanm
actually tries to find '"foo"' on CPAN, and nothing works. The original
thinking was that the > in ~>= needs escaping when copy/pasted by a user, so
the ""-enclosing seemed like a valid approach. Of course this does not work
at all when the output is piped into cpanm directly:

 perl -Ilib -MDBIx::Class::Optional::Dependencies=-list_missing,deploy | cpanm

Moreover, all of the above is *utterly unnecessary*, as Foo~>=2 is entirely
equivalent to Foo~2, which requires no escaping (thus quoting) whatsoever.

Hopefully this is the end of the embarrassing flailing on this feature :(

8 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

8 years ago(travis) Silencer changes in f8200928 were practically undone by 8b60b921
Peter Rabbitson [Sun, 5 Jul 2015 17:52:33 +0000]
(travis) Silencer changes in f8200928 were practically undone by 8b60b921

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 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

8 years agoRemove pieces forgotten in 35ca725a (nothing refers to them)
Peter Rabbitson [Sun, 28 Jun 2015 10:16:02 +0000]
Remove pieces forgotten in 35ca725a (nothing refers to them)

8 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 :(

8 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

8 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 its
function 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{} )

8 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

8 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

8 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

8 years agoMake sure tests still pass in a fork-limited environment
Peter Rabbitson [Wed, 10 Jun 2015 14:18:01 +0000]
Make sure tests still pass in a fork-limited environment

Inspired by a temporarily stuck smoker
http://www.cpantesters.org/cpan/report/751da1f2-e3ff-11e4-a1d1-8536eb4f9f07

Read under -w

8 years ago(travis) Better shuffling of the prereq installation order
Peter Rabbitson [Thu, 28 May 2015 08:00:26 +0000]
(travis) Better shuffling of the prereq installation order

8 years ago(travis) Improve the "Did it really install?" check
Peter Rabbitson [Wed, 10 Jun 2015 01:59:55 +0000]
(travis) Improve the "Did it really install?" check

8 years ago(travis) Double check M::B::T is not pulled in (related to a872a9d7)
Peter Rabbitson [Tue, 9 Jun 2015 23:48:26 +0000]
(travis) Double check M::B::T is not pulled in (related to a872a9d7)

8 years agoAdd Schmorp's "stable perl" fork to the smoke rosters
Peter Rabbitson [Sun, 7 Jun 2015 11:49:50 +0000]
Add Schmorp's "stable perl" fork to the smoke rosters

A note on motivation: I personally fully support Marc Lehmann's assertion
that the current direction of the perl5 development effort leaves a lot to
be desired (put in the mildest terms possible). The amount of changes[1]
necessary to get a *very* widely used module working again, and the failure
of the original authors to abandon the problematic direction *on their own*
is nothing short of an embarrassment. I fully recognize the reason why Marc
elected to attempt to maintain a fork (a nontrivial long-term commitment),
instead of engaging in another round of politicking and downright begging.

The inclusion of "stability perl" in the DBIC full-test matrix is the very
least I can do to support this effort.
                                                            --ribasushi

[1] http://stableperl.schmorp.de/dist/stableperl-5.22.0-1.001.diff

8 years agoMore excision of POSIX::import() calls (similar to 247c80fb)
Peter Rabbitson [Sun, 7 Jun 2015 11:26:45 +0000]
More excision of POSIX::import() calls (similar to 247c80fb)

Also some readability shuffling (zero functional changes)

8 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

8 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

8 years ago(optdeps) Explicitly force group names to lower-case (for now)
Peter Rabbitson [Mon, 4 May 2015 13:44:00 +0000]
(optdeps) Explicitly force group names to lower-case (for now)

8 years ago(optdeps) Rename an inconsistent 'icdt' marker to 'ic_dt' before we've shipped it
Peter Rabbitson [Mon, 27 Apr 2015 09:01:29 +0000]
(optdeps) Rename an inconsistent 'icdt' marker to 'ic_dt' before we've shipped it

8 years ago(optdeps) Skip-spec brainfart in offline mysql/pg test specs
Peter Rabbitson [Mon, 27 Apr 2015 08:54:21 +0000]
(optdeps) Skip-spec brainfart in offline mysql/pg test specs

The _-prefix played a role in an earlier deficient implementation, which
was later thrown away. Make the relevant tests require-lines saner

8 years agoFix forgotten 'unless' tripped by 05a5ca4b (introduced in c863e102)
Peter Rabbitson [Wed, 20 May 2015 19:02:47 +0000]
Fix forgotten 'unless' tripped by 05a5ca4b (introduced in c863e102)

Why was this never detected? Because the deparse differs *only* on 5.10.[01]
IFF compiled without -DDebugging. I hate everything

8 years agoAdd extra (passing) test for operations on sourceless results
Peter Rabbitson [Wed, 20 May 2015 14:11:39 +0000]
Add extra (passing) test for operations on sourceless results

This should have been committed with 84b1ec108, reevaluated while reading
through cb909f39c of GH#78

8 years agoReplace all instances of ; in the rowparser loop with , ( ~15% speedup )
Peter Rabbitson [Wed, 20 May 2015 13:25:06 +0000]
Replace all instances of ; in the rowparser loop with , ( ~15% speedup )

The functional diff best examined via `... --color-words -w lib ...`

This is another microoptimization, which is nevertheless measurable on 1000+
row resultsets. Investigation into this was prompted by a curious comment made
by bulk88[1] in response to xdg[2]:

  Every ";" is an op that executes that adjusts current line number

Given that we already generate all this code, and it is not intended to be
read by a human, swapping ; with , is only logical. A (very very crude) check
with the included benchmarker indeed shows a repeatable difference on 5.16.2

[1] http://www.nntp.perl.org/group/perl.perl5.porters/2015/05/msg228074.html
[2] http://www.nntp.perl.org/group/perl.perl5.porters/2015/05/msg228068.html

8 years agoRewrite collapsing parser while loop (mere op-level golf)
Peter Rabbitson [Tue, 3 Mar 2015 23:06:47 +0000]
Rewrite collapsing parser while loop (mere op-level golf)

8 years agoThe encode-and-substitute in the generator is not necessary since a8f62ee08
Peter Rabbitson [Thu, 26 Feb 2015 13:22:39 +0000]
The encode-and-substitute in the generator is not necessary since a8f62ee08

8 years agoRewrite the collapsing rowparser pigeonholing logic
Peter Rabbitson [Thu, 26 Feb 2015 12:51:49 +0000]
Rewrite the collapsing rowparser pigeonholing logic

Instead of dynamically determining whether to use the data as a key directly,
always compose a list of copied 'row ids' and use that in all operations.

This is mainly done to stop dualvar-ing of numeric variables returned by the
engine, thus confusing JSON and similar serializers down the road

8 years agoMake sure tests pass without a compiler present (another step to RT#74706)
Peter Rabbitson [Tue, 19 May 2015 03:49:48 +0000]
Make sure tests pass without a compiler present (another step to RT#74706)

8 years ago(travis) Simplify some steps - no longer needed for various reasons
Peter Rabbitson [Tue, 19 May 2015 05:49:18 +0000]
(travis) Simplify some steps - no longer needed for various reasons

8 years ago(travis) Correctly detect CI on github forks
Peter Rabbitson [Tue, 19 May 2015 12:30:03 +0000]
(travis) Correctly detect CI on github forks

8 years ago(travis) Enhance sterilization to work on < 5.12 as well
Peter Rabbitson [Wed, 13 May 2015 07:06:42 +0000]
(travis) Enhance sterilization to work on < 5.12 as well

This is a terrible but effective hack - we can semi-safely nuke anything OptDeps
knows about, as long as it has never been part of core

8 years ago(travis) Peg Module::Install - new versions deps on autodie, which is 5.8.4+
Peter Rabbitson [Sun, 3 May 2015 21:18:35 +0000]
(travis) Peg Module::Install - new versions deps on autodie, which is 5.8.4+

The actual problem is actually couple-notches-older than the peg - the autodie
use got introduced in tests at 1.14 (Oct 2014), but I never noticed it as I
install M::I with notest.

While autodie might be fixable, it's a distraction at this moment, and besides
the M::I builder is about to be retired anyway. Punting.

8 years ago(travis) *FINALLY* remove Module::Build::Tiny front-loading
Peter Rabbitson [Sun, 19 Apr 2015 05:51:47 +0000]
(travis) *FINALLY* remove Module::Build::Tiny front-loading

8 years agoThis is no longer necessary after 4068e05f
Peter Rabbitson [Thu, 30 Apr 2015 16:53:25 +0000]
This is no longer necessary after 4068e05f

8 years agoFix corner case of stringify-only overloaded values
Peter Rabbitson [Mon, 27 Apr 2015 10:23:34 +0000]
Fix corner case of stringify-only overloaded values

Just a trivial cleanup, uncovered during the de-Path::Class work

9 years agoPost-last touchups to 00describe_environment.t
Peter Rabbitson [Tue, 7 Apr 2015 12:34:59 +0000]
Post-last touchups to 00describe_environment.t

 - Display the contents of @INC, making it even easier to follow sourcing
 - Add support for (site|vendor)lib_stem (whatever that is)
 - Add support for (site|vendor)prefix
 - Add support for ./blib/(lib|arch)
 - Add support for an explicit CWD marker

9 years agoOne last touch of describe_environment: explain missing checksum
Peter Rabbitson [Mon, 6 Apr 2015 15:57:52 +0000]
One last touch of describe_environment: explain missing checksum

kentnl++

9 years agoFurther enhance 00describe_environment.t:
Peter Rabbitson [Mon, 6 Apr 2015 11:38:40 +0000]
Further enhance 00describe_environment.t:

- Explicitly report expected but failed-to-load modules
- Add knowledge of './t' => T, under same rules as LIB
- When no sourcing is found - report the @INC index if possible
- If a module came from {SVP}{AL}, list it even if no version is defined

9 years agoAdd an explicit DateTime::TimeZone::OlsonDB optdep
Peter Rabbitson [Sun, 5 Apr 2015 12:41:56 +0000]
Add an explicit DateTime::TimeZone::OlsonDB optdep

It happens to lazy-load a lot of extra modules, which both hides them from the
t/00describe_encironment lister *and* messes with preforking.

9 years agoRewrite dependency lister from - now produces *much* easier to read output
Peter Rabbitson [Sun, 5 Apr 2015 11:52:11 +0000]
Rewrite dependency lister from - now produces *much* easier to read output

Knowing where a module came from is quite valuable, but the segmentation done
in cebc0cc8 makes it rather hard finding a particular module. Instead add
an extra prefix with shorthand "dirs of interest" names, and putput the entire
list in ci-alphabetical order.

Additionally make sure we explicitly print out our versions under CI (a silly
omission from earlier), and explicitly omit loading dist_* optdeps

While the diff is massive, the actual logic did not change in any significant
way.

9 years ago(travis) More robust post-success test cycle run (enhancements over bf44bdb9)
Peter Rabbitson [Fri, 3 Apr 2015 13:06:04 +0000]
(travis) More robust post-success test cycle run (enhancements over bf44bdb9)

 - Make sure it always runs in parallel
 - Make sure we do not drag in SQLT/Moose after sitelib purge

9 years agoMake sure plain install with DBICTEST_VIA_REPLICATED works
Peter Rabbitson [Fri, 3 Apr 2015 11:30:27 +0000]
Make sure plain install with DBICTEST_VIA_REPLICATED works

This is an omission from 8b60b921, unnoticed all the way until bf44bdb9

9 years agoFix missing handling of on_(dis)connect* failures
Peter Rabbitson [Fri, 3 Apr 2015 22:18:39 +0000]
Fix missing handling of on_(dis)connect* failures

Time for a short story (see last paragraph for TL;DR): Some hours ago an
innocent question was asked in the #dbix-class channel, apparently
related to a mysterious failure to determine the RDBMS version. Before I
was able to properly investigate the problem, someone else piped up with
"Oh I've seen this before, and I worked around it". That was of course
without telling anyone else </headdesk>

After a little back and forth it became apparent that if the on_connect
settings could not be executed for whatever reason, the result may be an
implicitly failed connection attempt which is *entirely undetected* as
it leaves the original $dbh in place with some or all of the on_connect
instructions not having executed as expected.

To reiterate: if one manages to:
 * supply a malformed on_connect*
and then
 * call as the first order of business some codepath that can mask away
   the connection failure (say ->deploy under sqlite)
then the result is a $schema with a proper $dbh in the storage instance,
but *without* some (or all) of the on_connect instructions having been
executed. As a bonus the actual call to get e.g. the RDBMS metadata (like
version etc) will have failed completely silently as well. Arguably a
rather problematic bug.

The above and by extension an issue with silent on_disconnect* failures
are bith fixed by this commit. This was possible *only* because the
second person came into the channel and reported it, instead of silently
fixing things and moving on to whatever they were doing.

Moreover while preparing the (relatively modest) patch to fix this issue,
a small refactor revealed a pretty serious bug in the XS accessor provider
Class::XSAccessor: https://rt.cpan.org/Ticket/Display.html?id=103296
Yes, it took about 3 hours to diagnose this and hunt down an isolated
failcase, but the bug severety (and its elegance) are totally worth it.

Moral of the story: *PLEASE* report issues upstream. Even if you figured
out a quick workaround, the devs still need to know about the problem you
did encounter in the first place. Bugs that nobody knows about can *NOT*
be fixed, and our software commons can not improve. So *PLEASE* speak up.

9 years agoMinor code reformat, to shorten the diff of next commit
Peter Rabbitson [Fri, 3 Apr 2015 22:14:00 +0000]
Minor code reformat, to shorten the diff of next commit

Zero functional changes, read under -w