9 years agoUse proper quote handling in _dbh_get_autoinc_seq topic/quote-unquote
Dagfinn Ilmari Mannsåker [Mon, 28 Jul 2014 15:34:12 +0000]
Use proper quote handling in _dbh_get_autoinc_seq

9 years agoUse proper quote handling in _count_subq_rs
Dagfinn Ilmari Mannsåker [Mon, 28 Jul 2014 15:33:52 +0000]
Use proper quote handling in _count_subq_rs

9 years agoUse proper quote handling in _extract_order_criteria
Dagfinn Ilmari Mannsåker [Mon, 28 Jul 2014 14:06:19 +0000]
Use proper quote handling in _extract_order_criteria

This should really be rewritten to localise the $sql_maker's quote
settings to force them _on_, à la _resolve_aliastypes_from_select_args

9 years agoAdd SQLMaker methods for matching and unquoting quoted identifiers
Dagfinn Ilmari Mannsåker [Mon, 28 Jul 2014 13:17:08 +0000]
Add SQLMaker methods for matching and unquoting quoted identifiers

9 years ago\Q-uote column/alias names in regexes in _resolve_aliastypes_from_select_args
Dagfinn Ilmari Mannsåker [Sun, 27 Jul 2014 15:09:41 +0000]
\Q-uote column/alias names in regexes in _resolve_aliastypes_from_select_args

Column names can contain regex metacharacters (which includes #, with
/x), so wrap them in \Q and \E to avoid syntax errors.

9 years agoCreate a quoting torture test
Dagfinn Ilmari Mannsåker [Sun, 27 Jul 2014 14:57:27 +0000]
Create a quoting torture test

9 years agoFix "muse" typo in Relationship::Base's POD.
Stefan Hornburg (Racke) [Thu, 14 Aug 2014 11:56:55 +0000]
Fix "muse" typo in Relationship::Base's POD.

9 years agoUpdate 'as' vs '-as' discussion in ResultSet.pm
Ben Hutton [Fri, 8 Aug 2014 12:55:03 +0000]
Update 'as' vs '-as' discussion in ResultSet.pm

Call me pedantic, but I think moving the statment to a new line makes it
more prominant. I may have seen it before heading to irc to ask why it's
broken. Yes I should have read the section fully, but I didn't.

Also made the two statements use the same terminiolgy to be consistent
and add context.

9 years agoReword the having attribute reference
Olaf Alders [Tue, 5 Aug 2014 16:25:23 +0000]
Reword the having attribute reference

9 years agoAdd extra doc line expanding on the role of the prefetch attribute
Ben Hutton [Thu, 7 Aug 2014 10:17:42 +0000]
Add extra doc line expanding on the role of the prefetch attribute

9 years agoEnsure the TempExtlib actuall exists
Peter Rabbitson [Thu, 7 Aug 2014 03:05:39 +0000]
Ensure the TempExtlib actuall exists

9 years agoS::L tests rely on preserving the sqlmaker between reconnections
Peter Rabbitson [Tue, 5 Aug 2014 12:56:18 +0000]
S::L tests rely on preserving the sqlmaker between reconnections

While this is utterly retarded, punt and backout the b6a469f7 change for now.
Will revisit again during the connect_info consolidation

9 years agoTighten the 'txn-op on disconnected handle' checks
Peter Rabbitson [Tue, 5 Aug 2014 12:37:28 +0000]
Tighten the 'txn-op on disconnected handle' checks

9 years agoSimplify some ::Storage::DBI methods (no tempvars)
Peter Rabbitson [Tue, 5 Aug 2014 12:35:49 +0000]
Simplify some ::Storage::DBI methods (no tempvars)

No functional changes at all

9 years agoFix $rs->populate with column name array but no row data
Dagfinn Ilmari Mannsåker [Fri, 1 Aug 2014 14:17:21 +0000]
Fix $rs->populate with column name array but no row data

Two regressions for both context types snuck in during the the big populate()
rewrite d0cefd99

- In scalar context the return value incorrectly went from () to []
- In void context an empty $data was handed to ::Storage::_insert_bulk

9 years agoDeprecate insert_bulk - we will be changing its signature down the road
Peter Rabbitson [Tue, 5 Aug 2014 11:13:10 +0000]
Deprecate insert_bulk - we will be changing its signature down the road

Besides there is really no reason for users to call it directly

9 years agoFix both a dubious test and a regression in populate args immutability
Peter Rabbitson [Tue, 5 Aug 2014 10:13:16 +0000]
Fix both a dubious test and a regression in populate args immutability

The rewrite in d0cefd99 optimized populate enough that the same data structure
would now make it all the way to the stringifier in ::Storage. This was not
caught due to a deficient test.

Read diff under -w for maximum sense

9 years agoCosmetic rearranging/renaming of some parts of the populate codepath
Peter Rabbitson [Sun, 3 Aug 2014 16:01:56 +0000]
Cosmetic rearranging/renaming of some parts of the populate codepath

Zero functional changes

9 years agostrip schema name from ADD CONSTRAINT / CREATE INDEX
Fitz Elliott [Thu, 26 Jun 2014 19:12:06 +0000]
strip schema name from ADD CONSTRAINT / CREATE INDEX

 * Pg tablenames may have a schema prefix.  This leads to invalid ADD
   CONSTRAINT / CREATE INDEX statments being generated by ->deploy(),
   since constraint and index names may not have a period in them. This
   patch strips the schema part from the table name when constructing
   unique index and constraint names.  The fix was taken from
   ribasushi's email to the mailing list:

   http://lists.scsys.co.uk/pipermail/dbix-class/2013-February/011141.html

9 years ago"Fix" symptoms described in ba7892a8c4 (I still do not entirely get it)
Peter Rabbitson [Wed, 30 Jul 2014 12:00:38 +0000]
"Fix" symptoms described in ba7892a8c4 (I still do not entirely get it)

Extra fail reports are:
http://www.cpantesters.org/cpan/report/f74def2b-6bfb-1014-b341-c67b58fe2ee5
http://www.cpantesters.org/cpan/report/3123ab19-6bf8-1014-b488-656aa945bbef

9 years agoEnsure proper behavior when quoting is *disabled* (wraps up 08ac7648)
Peter Rabbitson [Wed, 30 Jul 2014 11:48:22 +0000]
Ensure proper behavior when quoting is *disabled* (wraps up 08ac7648)

9 years agoThe extra reltype flag is breaking some suites - make the full change
Peter Rabbitson [Tue, 29 Jul 2014 09:17:36 +0000]
The extra reltype flag is breaking some suites - make the full change

Might as well get this over with, still consistent with Swindon

9 years agoRemove unused leftover from c19ca6e80 - there was much flailing :(
Peter Rabbitson [Tue, 29 Jul 2014 09:01:11 +0000]
Remove unused leftover from c19ca6e80 - there was much flailing :(

9 years agoKill rel-exists sanity checks for 28, reinstate them later
Peter Rabbitson [Tue, 29 Jul 2014 08:44:41 +0000]
Kill rel-exists sanity checks for 28, reinstate them later

Something that simple allows RapidApp to pass its tests without modifications
in other words - worth the pain

9 years agoThe fix in f9b5239ac was both shortsighted and insufficient
Peter Rabbitson [Tue, 29 Jul 2014 05:12:16 +0000]
The fix in f9b5239ac was both shortsighted and insufficient

Move the quote_names => quote_identifiers inferrence into ::Storage::DBI
proper, and ensure tests cover it this time

Also bump SQLT dep, as the previous version throws on diffing DBICTest::Schema
under SQLite

9 years agoCheck relationship declarations more consistently
Peter Rabbitson [Tue, 29 Jul 2014 03:45:11 +0000]
Check relationship declarations more consistently

9 years agoRevert improved test added in b6b8f72f, replace with original from dabe173a
Peter Rabbitson [Tue, 29 Jul 2014 03:20:16 +0000]
Revert improved test added in b6b8f72f, replace with original from dabe173a

The new test contains a case which it *seems* to me needs to be an exception.
Since we are already pretty late with 28, I am just reverting the test alone
(while keeping the changes). This way I am not backing myself into a corner
with a published test in 29.

9 years agoMore diag from t/53lean_startup.t when under smoker env
Peter Rabbitson [Tue, 29 Jul 2014 03:14:00 +0000]
More diag from t/53lean_startup.t when under smoker env

Trying to pinpoint cause for the following two:
http://www.cpantesters.org/cpan/report/c13d6ffc-6bf4-1014-8850-81d5948d76d3
http://www.cpantesters.org/cpan/report/51d7cbe3-6bf5-1014-88de-68e8687ecb02

9 years agoA little cleanup of ->id callsites (incomplete)
Peter Rabbitson [Tue, 29 Jul 2014 02:17:04 +0000]
A little cleanup of ->id callsites (incomplete)

This is just to stave off an unlikely but possible 'id' colname masking a
multicol PK

The real workaround is to do something akin to Moose's ->meta, but that's
another battle.

9 years agoProperly throw on FC with find (it can never work anyway)
Peter Rabbitson [Tue, 29 Jul 2014 01:06:09 +0000]
Properly throw on FC with find (it can never work anyway)

This is the proper solution for RT#95054

9 years agoDeprecate _build_unique_cond, move its guts to ::ResultSource where it belongs
Peter Rabbitson [Tue, 29 Jul 2014 00:12:33 +0000]
Deprecate _build_unique_cond, move its guts to ::ResultSource where it belongs

9 years agoThe merger failing is no longer a possibility after 8e40a627
Peter Rabbitson [Mon, 28 Jul 2014 08:26:46 +0000]
The merger failing is no longer a possibility after 8e40a627

Remove the useless try{} block

9 years agoShuffle logic in find() a bit, no functional changes
Peter Rabbitson [Mon, 28 Jul 2014 07:29:13 +0000]
Shuffle logic in find() a bit, no functional changes

9 years agoFix set_column on non-native (+columns) selections (RT#86685)
Peter Rabbitson [Sun, 27 Jul 2014 22:39:19 +0000]
Fix set_column on non-native (+columns) selections (RT#86685)

9 years agoTighten even more inflate_result() invocations, for crazy overloads
Peter Rabbitson [Sun, 27 Jul 2014 21:50:25 +0000]
Tighten even more inflate_result() invocations, for crazy overloads

9 years agoEnsure collapse is respected regardless of selection type
Peter Rabbitson [Sun, 27 Jul 2014 12:13:45 +0000]
Ensure collapse is respected regardless of selection type

Switch the attribute name/logic (passthrough on explicit presence only)

9 years agoUpgrade the "too many args on customcond" warning from 1adbd3f to an exception
Peter Rabbitson [Sun, 27 Jul 2014 16:39:31 +0000]
Upgrade the "too many args on customcond" warning from 1adbd3f to an exception

9 years agoAdd reference to RT for the fix from d0cefd99
Peter Rabbitson [Sun, 27 Jul 2014 13:45:38 +0000]
Add reference to RT for the fix from d0cefd99

9 years agoBring back resolve_condition deleted in 03f6d1f7
Peter Rabbitson [Fri, 25 Jul 2014 14:17:44 +0000]
Bring back resolve_condition deleted in 03f6d1f7

It doesn't cost anything, and the compat shim turned out to be good enough
to make this worthwhile. Also apparently CPAN is using it still FML:
http://grep.cpan.me/?q=->_*resolve_condition

9 years agoThis was an embarrassing close call - entirely redo custom set_from_related
Peter Rabbitson [Fri, 25 Jul 2014 12:35:19 +0000]
This was an embarrassing close call - entirely redo custom set_from_related

I am flailing at this point - unacceptable. TL;DR: 03f6d1f7 is wrong, 1adbd3fc
is wrong, so is 5592d63 and most importantly 350e8d57 is unacceptably wrong.

The entire "I will inflate a bag of data into a synthetic object" was wrong
from the very beginning (03f6d1f7) but I was too busy keeping the tets passing
to realize what crack-mountain I was standing on.

The crux of the issue is: it didn't occur to me that forward-resolution
(related_resultset) *always* starts from an object by definition, while
reverse-resolution (set_from_related) takes either an object or a bag of
values or undef. Moreover: in the custom coderef the user does not care at
all about the type - all they want is to get their values. In light of this
self_result_object is actually a mistake - we should have simply provided
self_values from the start, but that ship has already sailed. On the other
hand the reverse-resolution bag is a new feature, and we can simply (and
correctly) settle on passing in a hashref of values: foreign_values

This fully avoids the "how do I get an object out of plain data" problem
and nicely settles all the outsanding (untested until now) problems.

I just wish I would have seen this a week earlier... sigh. At least not
shipping this live is a consolation...

9 years agoChange version style/handling (doc coming up shortly)
Peter Rabbitson [Thu, 24 Jul 2014 02:17:09 +0000]
Change version style/handling (doc coming up shortly)

9 years agoMinor limit dialects doc fix
Jens Gassmann [Thu, 24 Jul 2014 02:06:38 +0000]
Minor limit dialects doc fix

9 years agoAdded support for handling Class::DBI::Column in CDBICompat
Mike Francis [Mon, 21 Jul 2014 15:13:46 +0000]
Added support for handling Class::DBI::Column in CDBICompat

9 years agoAdded handling for implicit inflate/deflate of CDBI has_a relationships
Mike Francis [Fri, 18 Jul 2014 13:45:51 +0000]
Added handling for implicit inflate/deflate of CDBI has_a relationships

9 years agoAdd 3rd example of col info in ResultSource->add_column
Mintywalker [Sat, 12 Apr 2014 17:13:27 +0000]
Add 3rd example of col info in ResultSource->add_column

Rather than just say "it's a hashref", provide a simple example of what that
hashref might look like.

9 years agoThe current_source_alias is prepended, not a literal "me."
Karen Etheridge [Wed, 23 Jul 2014 19:25:55 +0000]
The current_source_alias is prepended, not a literal "me."

9 years agoBundle trial SQLA for the trial of DBIC (reuse dq technique f4a8b21e)
Peter Rabbitson [Wed, 23 Jul 2014 18:02:52 +0000]
Bundle trial SQLA for the trial of DBIC (reuse dq technique f4a8b21e)

Supersedes 609fa215, to be reverted before 0.082800

9 years agoCorrect test of ${^WARNING_BITS} - as haarg++ noted: runtime != compile time
Peter Rabbitson [Wed, 23 Jul 2014 18:15:10 +0000]
Correct test of ${^WARNING_BITS} - as haarg++ noted: runtime != compile time

Also bump Moo prereq for proper
 * presence of undefer_all
 * fixes of meory leaks in Sub::Quote/Sub::Defer

9 years agoDocument and add example of foreign_related_object
Peter Rabbitson [Thu, 24 Jul 2014 00:11:38 +0000]
Document and add example of foreign_related_object

9 years agoChange once more the signature of the custom cond coderef (augment a446d7f8)
Peter Rabbitson [Wed, 23 Jul 2014 23:29:46 +0000]
Change once more the signature of the custom cond coderef (augment a446d7f8)

Since there hasn't yet been a stable release with the new naming, and given
I've already mistyped the long-form twice, might as well rename things and
stay consistent.

9 years agoNow that populate is rewritten: finalize the resolver fatal sanity checks
Peter Rabbitson [Wed, 23 Jul 2014 20:24:27 +0000]
Now that populate is rewritten: finalize the resolver fatal sanity checks

9 years agoEntirely and utterly rewrite populate(), fixing the variable hash issue
Peter Rabbitson [Tue, 10 Dec 2013 08:37:32 +0000]
Entirely and utterly rewrite populate(), fixing the variable hash issue

Yes, it took ~3 years to properly fix it. The changeset size alone should make
it pretty clear why this happened, but this is not the entire story.

At first the bug was deemed fixed back in a9bac98f. Due to miscommunication
and lack of tests this issue did not come up again until last winter (the devs
thought they nailed it, the users thought it's a wontfix).

Then when the actual tests got written it became clear that... words fail me.
In short - some folks had the bright idea that a fast-path insert got to be
able to understand *MULTI-CREATE* semantics. There was a great deal of tests
that did all the wrong things from a conceptual point of view but they were
passing tests nonetheless. So the thing got tabled again...

In the meantime a recent flurry of improvements to the relcond resolver
took place, mainly centered around fixing the custom relconds call modes.
A side effect was uncovering that populate() is invoking relationship cond
resolution in an... insane for the lack of a better word way. Some shims
were put in place and the only remaining bit were warnings, however with the
improvements available it in fact possible to cleanly implement
"subquery-based multicreate".

So instead of punting - the entire codeflow of populate was reworked with the
new toys in mind. The data mangler _normalize_populate_args is gone for good
(no more mindless copy of passed in data). The amount of fallbacks to create()
is reduced and each instance now properly warns of the problem. All in all
this is another one of "if something changed - I fucked up" changes.

As an added benefit - we now have a foothold into validating subquery-based
multicreate implementations - soon (one would hope) the code will migrate
to wider use within ::ResultSet.

A notable part of this commit is the *undocumented* implementing part of the
Swindon consensus - the is_depends_on flag is now added to all belongs_to
relationship attrs. The actual implementation of the rest is subject to
another battle.

Now on to 0.082800

9 years agoOne more output for the resolver - used in next commit
Peter Rabbitson [Wed, 23 Jul 2014 18:56:54 +0000]
One more output for the resolver - used in next commit

Note that the column equivalency map is calculated for both types
of rels, which is crucial down the road

9 years agoRe-fix relcond resolver: revert 5592d633 (in turn partial revert of 03f6d1f7)
Peter Rabbitson [Mon, 21 Jul 2014 16:45:06 +0000]
Re-fix relcond resolver: revert 5592d633 (in turn partial revert of 03f6d1f7)

I had the right hunch during 03f6d1f7 but could not substantiate it: the
issue is that the custom coderef expects objects or nothing. Yet here and
there internals pass around bare hashes of data (or sometimes even undef).

Asking users to complicate their coderefs further is just not an option -
it is mindbending enough as it is. So the only way to go forward is indeed
to create "synthetic result objects" and pass them down the stack. This time
however there is a twist - after the overhaul in 4006691d we now *can*
indeed construct such objects on top of the bare DBIx::Class::Core - in
other words mission fucking accomplished.

This commit *may* need to be reverted in case it turns out that 4006691d is
a no-go (check the test change to t/inflate/datetime_oracle.t in 12b348d9
for an example of what was taken for granted wrt direct $class-> calls)
If this is the case - not all is lost. We should be able to use a hidden
class with an actual source instance that we would ammend on the fly... But
let's hope we will never get to this bridge :(

9 years agoAvoid ResultSourceProxy calls whenever possible
Peter Rabbitson [Mon, 21 Jul 2014 10:41:46 +0000]
Avoid ResultSourceProxy calls whenever possible

Along with efficiency gains this commit makes a very subtle but crucially
important change: From here now on when we operate on an instance, we are
guaranteed to query this instance's result source. The previous codepaths
would nearly randomly switch between the current rsrc instance and the one
registered with the corresponding result class.

This will allow for proper synthetic result instance construction further on

9 years agoRebase Oracle datetime inflation test on top of DBICTest::Schema::Event
Peter Rabbitson [Mon, 21 Jul 2014 21:45:50 +0000]
Rebase Oracle datetime inflation test on top of DBICTest::Schema::Event

The butchering of Track made sense in 2007, not so much today

The test seems to behave identically, hope I didn't fuck up anything...
https://travis-ci.org/dbsrgits/dbix-class/builds/30513847#L398

9 years agoReplace many closure-based proxy methods with static qsubs
Peter Rabbitson [Fri, 18 Jul 2014 16:26:57 +0000]
Replace many closure-based proxy methods with static qsubs

Not only does this buy a quantum of performance, but it greatly enhances
readability of these methods on deparse

Deliberately not converting the ManyToMany helper - this code needs a
thorough regut :(

9 years agoReformat add_relationship_accessor for future edit
Peter Rabbitson [Sun, 20 Jul 2014 11:47:09 +0000]
Reformat add_relationship_accessor for future edit

No functional changes, read diff under -w

9 years agoStandardize the Moo import block, move quote_sub/qsub into ::_Util
Peter Rabbitson [Fri, 18 Jul 2014 16:21:20 +0000]
Standardize the Moo import block, move quote_sub/qsub into ::_Util

This way we will have less boilerplate in subsequent commits where we
will use quote_sub standalone

Add yet another test to make absolutely sure quote_sub won't leak any of the
strictures insanity

9 years agoReplace B::perlstring with our own implmentation thereof
Peter Rabbitson [Mon, 21 Jul 2014 07:57:24 +0000]
Replace B::perlstring with our own implmentation thereof

Haarg++ for pointing this out

9 years agoAdd internal assertion guard for some indirect calls (for now only create/new)
Peter Rabbitson [Fri, 18 Jul 2014 16:11:15 +0000]
Add internal assertion guard for some indirect calls (for now only create/new)

Modeled on the idea of a9da9b6a, this one blows up when a public proxy
is called insted of the equivalent public chan of methods

This particular set of changes to create() and new() is solely an
optimisation (unlike a subsequent commit to ::ResultSourceProxy)

9 years agoGreatly improve diagnostic messages of _resolve_relationship_condition
Peter Rabbitson [Sun, 20 Jul 2014 12:07:28 +0000]
Greatly improve diagnostic messages of _resolve_relationship_condition

9 years agoRemove duplicate arg-check in create(), adjust exception text
Peter Rabbitson [Fri, 18 Jul 2014 09:49:49 +0000]
Remove duplicate arg-check in create(), adjust exception text

9 years agoSimplify no wantarray assert (a9da9b6a) - fish out args from caller
Peter Rabbitson [Fri, 18 Jul 2014 08:42:58 +0000]
Simplify no wantarray assert (a9da9b6a) - fish out args from caller

9 years agois_X_value functions introduced in 3705e3b28 migrated to SQLA with fixups
Peter Rabbitson [Thu, 17 Jul 2014 09:20:30 +0000]
is_X_value functions introduced in 3705e3b28 migrated to SQLA with fixups

9 years agoBetter, consistent handling of -literal/-value in the cond collapser
Peter Rabbitson [Thu, 17 Jul 2014 07:05:19 +0000]
Better, consistent handling of -literal/-value in the cond collapser

9 years ago(travis) Temporary hard-spec of the SQLA dep, lockstep release
Peter Rabbitson [Thu, 17 Jul 2014 12:53:42 +0000]
(travis) Temporary hard-spec of the SQLA dep, lockstep release

9 years agoMove the "special loading" check to DBICTest::Util
Peter Rabbitson [Thu, 17 Jul 2014 12:22:24 +0000]
Move the "special loading" check to DBICTest::Util

No functional changes

9 years agoSkip the namespace tests on plain install
Peter Rabbitson [Thu, 17 Jul 2014 12:37:12 +0000]
Skip the namespace tests on plain install

Protect users from future spurious changes in uncleaned imports

9 years ago(travis) T::B 1.005 is superseded by 1.300 - remove handholding
Peter Rabbitson [Thu, 17 Jul 2014 13:12:52 +0000]
(travis) T::B 1.005 is superseded by 1.300 - remove handholding

9 years agoAdd one extra is_exception check (missed a spot during 841efcb3f)
Peter Rabbitson [Tue, 15 Jul 2014 01:48:40 +0000]
Add one extra is_exception check (missed a spot during 841efcb3f)

In addition tweak the message so that carp_unique can in fact catch it
properly, and test that the proper amount of warnings is in fact emitted

9 years agoConsolidate bits and pieces under ::_Util::refdesc
Peter Rabbitson [Tue, 15 Jul 2014 00:36:44 +0000]
Consolidate bits and pieces under ::_Util::refdesc

No functional changes

9 years agoRemove double has_column check in new=>store_column
Peter Rabbitson [Tue, 15 Jul 2014 05:14:31 +0000]
Remove double has_column check in new=>store_column

Standardize exception texts across ::Row

9 years agoAnother heavy refactor of the rel resolver prototype (sequel to 03f6d1f7)
Peter Rabbitson [Sat, 12 Jul 2014 15:32:52 +0000]
Another heavy refactor of the rel resolver prototype (sequel to 03f6d1f7)

Change the return value of _resolve_relationship_condition to a 3-value
hash, with a lot of the safety logic consolidated within that method. The
best way to gauge the significance of the changes is to look at the diff
of lib/DBIx/Class/Relationship/Base.pm

Also stop returning the "noncondition-columns" in the _resolve_condition
compa-shim. The information was only used by the code removed from
::Relationship::Base, and is rather new with no evidence of use within
CPAN/DarkPAN. It can be easily added back if necessary.

9 years agoMove a CDBI escape to the CDBI class hierarchy
Peter Rabbitson [Sat, 12 Jul 2014 11:52:45 +0000]
Move a CDBI escape to the CDBI class hierarchy

9 years agoRefactor ::DBIHacks::_extract_fixed_condition_columns (sequel to 8d005ad9)
Peter Rabbitson [Sat, 12 Jul 2014 10:32:20 +0000]
Refactor ::DBIHacks::_extract_fixed_condition_columns (sequel to 8d005ad9)

Instead of just returning an array of column names, switch to a hashref that
can double as an inferred-value bag. As a bonus deduplicates and folds-in
another codepath from ::ResultSet::_merge_with_rscond

In the process fixup _collapse_cond to be even more robust in some arrayref
corner-cases. Now it is guaranteed to return a hashref at all times

9 years agoSwitch UNRESOLVABLE_CONDITION to an _Util constant
Peter Rabbitson [Sat, 12 Jul 2014 09:51:00 +0000]
Switch UNRESOLVABLE_CONDITION to an _Util constant

9 years agoOlder perls get confused by this construct - rewrap
Peter Rabbitson [Tue, 8 Jul 2014 05:42:06 +0000]
Older perls get confused by this construct - rewrap

9 years agoRevert optimistic and sloppy changes from 3705e3b2 - DBI does not always DTRT
Peter Rabbitson [Tue, 8 Jul 2014 04:58:03 +0000]
Revert optimistic and sloppy changes from 3705e3b2 - DBI does not always DTRT

In addition I rebroke the issue from RT#79576, ffs man pay attention

<ribasushi> general question - does DBI guarantee that objects with stringification overload will get their stringification called
<ribasushi> or is this up to the DBD (and thus will vary)
<mje> ribasushi, I had an issue in DBD::ODBC ages ago with this - looking for it now
<mje>  rt 78838 - bind_param does not correctly stringify blessed objects when connected to MS SQL Server, magic was not being applied in DBD::ODBC case
<mje> so I think the answer to your question is DBI does not but DBDs should if they are written correctly
<ribasushi> I wonder why DBI does not
<timbunce_> ribasushi: no explicit ‘guarantee’ but I think any place it doesn’t is probably a bug.
<ribasushi> timbunce_: given mje had to do magic in his DBD, I suspect DBI has a "hole" somewhere then no?
<ribasushi> basically I was looking into removing the explicit stringifications in DBIC, hence the question
<ribasushi> if there is consensus that DBI ought to do it all on its own, we could test for it, fix it up, and then I disable the checks when I detect a sufficiently advanced DBI.pm
<timbunce> yes, ribasushi: “… we could test for it, fix it up, and then I disable the checks when I detect a sufficiently advanced DBI.pm or something”
<timbunce> :)
<ribasushi> nod ;)

9 years agoInitial (now passing) tests prompting the order_by analyzer revamp 302d35f8
Brendan Byrd [Wed, 12 Feb 2014 14:32:45 +0000]
Initial (now passing) tests prompting the order_by analyzer revamp 302d35f8

9 years agoTeach order_by stability analyzer about search_related
Peter Rabbitson [Tue, 8 Jul 2014 04:09:40 +0000]
Teach order_by stability analyzer about search_related

There is more stuff we can do here as noted in the FIXME added to the very
end of _extract_colinfo_of_stable_main_source_order_by_portion. But for the
time being this will do (also see the subsequent tests for extra insanity we
could and should add)

Tests come in the next commit

9 years agoPass the main rsrc in attrs, instead of trying to fish it out later
Peter Rabbitson [Tue, 8 Jul 2014 04:18:15 +0000]
Pass the main rsrc in attrs, instead of trying to fish it out later

9 years agoClearer name of method/variables before refactoring
Peter Rabbitson [Tue, 8 Jul 2014 00:30:52 +0000]
Clearer name of method/variables before refactoring

9 years agoSwitch DBIC::Storage::Statistics to Moo (for trial purposes)
Peter Rabbitson [Tue, 8 Jul 2014 00:05:04 +0000]
Switch DBIC::Storage::Statistics to Moo (for trial purposes)

This is a component which has some subclassing in the wild, use it as a
canary to highlight any remaining issues Moo might have within DBIC

9 years agoBreak out the test tracer into a standalone file
Peter Rabbitson [Tue, 8 Jul 2014 00:46:14 +0000]
Break out the test tracer into a standalone file

9 years agoIFF debug goes to STDERR by default - silence possible wide-char warnings
Peter Rabbitson [Mon, 7 Jul 2014 22:57:20 +0000]
IFF debug goes to STDERR by default - silence possible wide-char warnings

9 years agoStop permanently enabling autoflush on the debug filehandle
Peter Rabbitson [Mon, 7 Jul 2014 22:45:32 +0000]
Stop permanently enabling autoflush on the debug filehandle

9 years agoExpand closed STDERR test, check actual exception
Peter Rabbitson [Mon, 7 Jul 2014 22:34:24 +0000]
Expand closed STDERR test, check actual exception

9 years agoBetter (and much more precise) explanation of Moose/Moo subclassing
skaufman [Sun, 29 Jun 2014 02:33:27 +0000]
Better (and much more precise) explanation of Moose/Moo subclassing

9 years agoBetter example/documentation of custom resultset classes
skaufman [Sun, 29 Jun 2014 02:33:27 +0000]
Better example/documentation of custom resultset classes

9 years agoChange tab space (4 => 2), no further changes
skaufman [Sun, 29 Jun 2014 02:33:27 +0000]
Change tab space (4 => 2), no further changes

9 years agoMove the Subclassing POD under Examples
Peter Rabbitson [Tue, 1 Jul 2014 09:00:57 +0000]
Move the Subclassing POD under Examples

9 years agonamespace::autoclean is a really stupid idea - purge with fire
Peter Rabbitson [Tue, 1 Jul 2014 08:45:02 +0000]
namespace::autoclean is a really stupid idea - purge with fire

9 years agoForgotten reenable of syntax test to guard for 37af2968e
Peter Rabbitson [Sat, 28 Jun 2014 10:23:52 +0000]
Forgotten reenable of syntax test to guard for 37af2968e

9 years agoAdd an explicit webchat link, change IRC to x_IRC
Peter Rabbitson [Tue, 1 Jul 2014 09:33:14 +0000]
Add an explicit webchat link, change IRC to x_IRC

This should work around the issue of 'preferred company/startup' raised in
https://github.com/CPAN-API/metacpan-web/issues/1235#issuecomment-47610925

9 years agoImproved docs for ResultSet columns attribute on how to retrieve related columns
Alexander Hartmaier [Thu, 8 Aug 2013 08:07:51 +0000]
Improved docs for ResultSet columns attribute on how to retrieve related columns

9 years agoMore coherent +(columns/select/as) quoting notices and descriptions
Alexander Hartmaier [Thu, 18 Jul 2013 16:31:46 +0000]
More coherent +(columns/select/as) quoting notices and descriptions

9 years agoPopulate caches for related result sets even if they're empty
Dagfinn Ilmari Mannsåker [Fri, 28 Mar 2014 16:48:17 +0000]
Populate caches for related result sets even if they're empty

This avoids unnecessary database hits when accessing prefetched related
resultsets with no rows.

9 years agoAdd a self-explanatory *compile-time* $ENV{DBIC_SHUFFLE_UNORDERED_RESULTSETS}
Peter Rabbitson [Tue, 17 Jun 2014 10:41:06 +0000]
Add a self-explanatory *compile-time* $ENV{DBIC_SHUFFLE_UNORDERED_RESULTSETS}

The idea is to be able to catch tests that rely on a particular order of
the results of ->all. ->next is untouched as injecting extra \'RANDOM'
order clauses is too heavy-handed for a test environment (and besides, having
->all and ->next return stuff in differing order is just as good of a
monkey-wrench)

9 years agoMinor optimization of codepath (no func changes)
Peter Rabbitson [Mon, 16 Jun 2014 14:37:27 +0000]
Minor optimization of codepath (no func changes)