Dagfinn Ilmari Mannsåker [Sun, 24 Mar 2013 16:23:37 +0000]
Factor out ORDER BY direction detection/stripping
The slightly unobvious regex is so that it's easier to add support for
more clauses (e.g. NULLS FIRST/LAST) later.
Peter Rabbitson [Sat, 23 Mar 2013 11:02:44 +0000]
Overhaul GenericSubq limit - add support for multicol order
A lot of other cleanup as well - this should be the end of it ;)
Peter Rabbitson [Sun, 24 Mar 2013 13:37:47 +0000]
Start running more limit dialect torture tests if possible
Peter Rabbitson [Sat, 23 Mar 2013 11:35:12 +0000]
Recognize root source unqualified columns under limited prefetch
Peter Rabbitson [Thu, 21 Mar 2013 11:37:43 +0000]
Consider where condition when determining leftmost order stability
Extract more eyebleed into DBIHacks in the process
Peter Rabbitson [Wed, 20 Mar 2013 16:25:26 +0000]
Use the defined-or operator in generated code on newer perls
Even *less* expensive op ;)
Peter Rabbitson [Wed, 20 Mar 2013 06:52:05 +0000]
space-compress tests making them readable - no changes
Peter Rabbitson [Mon, 18 Mar 2013 06:33:23 +0000]
Another parser microoptimisation - lose nullability checks where possible
Peter Rabbitson [Mon, 18 Mar 2013 06:27:51 +0000]
Stop needlesly invoking the $rs bool overload
Peter Rabbitson [Sat, 16 Mar 2013 10:22:12 +0000]
Reorder prefetch logic for optimal execution (no functional changes)
Avoid yet another expensive try call
Peter Rabbitson [Sun, 10 Mar 2013 18:51:21 +0000]
Normalize varnames (zero functional changes)
Peter Rabbitson [Mon, 11 Mar 2013 14:36:29 +0000]
Fix test description (DrHyde++)
Peter Rabbitson [Wed, 17 Apr 2013 07:34:50 +0000]
Merge branch 'master' into topic/constructor_rewrite
Add some extra code to enforce the assumption that any bind type constant
is accessible in _dbi_attrs_for_bind, or in other words that all necessary
DBDs are already loaded (concept originally introduced in
ad7c50fc)
Without this the combination of
9930caaf7e (do not recalculate bind attrs
on dbh_do retry) and
a2f228547 (do not wrap iterators in dbh_do) can result
in _dbi_attrs_for_bind being called before DBI/DBD::* has been loaded at all
Peter Rabbitson [Thu, 21 Mar 2013 08:07:32 +0000]
Remove idiotic RowCountOrGenericSubQ - it will never work as part of as_query
I am not sure how I overlooked this, blame is on me :(
Replacing with a ROWCOUNT fallback at the appropriate place
Matt Phillips [Mon, 15 Apr 2013 15:55:30 +0000]
Changes pod references to deprecated SQLT methods
quote_table_names/quote_field_names is deprecated, refer to quote_identifiers
instead.
Peter Rabbitson [Thu, 11 Apr 2013 05:57:56 +0000]
Add a TODO to catch when Text::Balanced RT#74994 is finally fixed
Jason McIntosh [Wed, 10 Apr 2013 20:23:25 +0000]
In example code, placing a necessary semicolon after a try/catch code-block, and correcting a nearby variable name.
Peter Rabbitson [Tue, 9 Apr 2013 13:15:12 +0000]
Fix oversight in subqueried MySQL update/delete
Peter Rabbitson [Thu, 4 Apr 2013 07:22:25 +0000]
Release v0.08210
Peter Rabbitson [Thu, 4 Apr 2013 03:20:43 +0000]
Trap and display STDERR during travis test runs
Peter Rabbitson [Thu, 4 Apr 2013 03:50:17 +0000]
More shuffling of travis testdeps
Peter Rabbitson [Wed, 3 Apr 2013 13:59:16 +0000]
Make sure external DBIC envvars do not cause tests to fail
Run the appropriate tests on travis to detect future problems
Peter Rabbitson [Thu, 24 Nov 2011 09:01:59 +0000]
Fix incorrect warning/exception originator
Until now we would report the second to last function as the
exception originator, whereas we need to report the first after
skipping the usual suspects of throw_exception etc
Peter Rabbitson [Thu, 4 Apr 2013 02:23:23 +0000]
Do not repeatedly trace test schema populate under TravisCI
Peter Rabbitson [Thu, 4 Apr 2013 02:20:39 +0000]
Extra TODO tests for a txn_guard silencing problem
Peter Rabbitson [Mon, 1 Apr 2013 10:07:51 +0000]
Work around SQLite's RT#79576
Includes a warning that data may have been corrupted in previous
DBIC versions, with resources on how to deal with this.
Peter Rabbitson [Mon, 1 Apr 2013 09:05:05 +0000]
Saner check for non-integer values bound as integers in SQLite
Peter Rabbitson [Mon, 1 Apr 2013 06:16:09 +0000]
Simplify _select_args_to_query - contortions not needed since
0e773352
Peter Rabbitson [Sun, 31 Mar 2013 13:06:59 +0000]
Refactor sth preparation/binding - no functional changes
Notable internal changes:
- _dbi_attrs_for_bind call is moved out of _dbh_execute - there is no point
recalculating these on retry
- _dbh_execute changed signature: $ident => $bind_attrs
- sth, _sth and _dbh_sth are no more - instead we now have _prepare_sth and
_bind_sth_params
The test in t/storage/base.t has not been actually working for years (it
did not register a spurious success with $count == 0). Removing it is safe
as t/storage/reconnect.t tests the same codepath more thoroughly
David Steinbrunner [Fri, 29 Mar 2013 14:52:01 +0000]
DESCRIPTION typo fix
Peter Rabbitson [Mon, 25 Mar 2013 10:21:20 +0000]
Fix test warnings left in by
11343b34
Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯 [Sun, 24 Mar 2013 11:24:57 +0000]
improve outline by introducing synopsis subheadings
Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯 [Sun, 24 Mar 2013 11:23:24 +0000]
improve mark-up
Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯 [Sun, 24 Mar 2013 11:05:11 +0000]
development info is less important than user info
Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯 [Sun, 24 Mar 2013 11:31:58 +0000]
Add daxim to contribs, specify main doc encoding
Peter Rabbitson [Sun, 24 Mar 2013 07:28:53 +0000]
9 years of perl and I somehow did not know that...
Peter Rabbitson [Sat, 23 Mar 2013 12:42:44 +0000]
Fix copypasta - strictures test needs no global lock
Peter Rabbitson [Thu, 21 Mar 2013 08:23:41 +0000]
Only display output of failed workers in parallel_installdeps_notest
Peter Rabbitson [Wed, 20 Mar 2013 11:09:51 +0000]
File::Path needs to be upgraded separately on smoking
Darius Jokilehto [Tue, 19 Mar 2013 12:18:09 +0000]
Add deprecation warnings for cols/include_columns
* Also update docs and include test
Peter Rabbitson [Tue, 19 Mar 2013 08:02:05 +0000]
Fix test failing with some tracing envvars (and smoke on travis too)
Peter Rabbitson [Sun, 10 Mar 2013 14:45:57 +0000]
EXPERIMENTAL Release v0.08242
Peter Rabbitson [Sat, 23 Feb 2013 15:44:13 +0000]
Properly wrap a subquery around grouped resultsets in case of $rscol->func($func)
Peter Rabbitson [Thu, 28 Feb 2013 08:31:13 +0000]
Radically rethink complex prefetch - make most useful cases just work (tm)
TL;DR: mst - I AM SORRY!!! I will rebase the dq branch for you when this
pile of eyebleed goes stable.
The long version - since we now allow arbitrary prefetch, the old
_prefetch_selector_range mechanism doesn't cut it anymore. Instead we
recognize prefetch solely based on _related_results_construction.
Furthermore group_by/limits do not play well with right-side order_by
(which we now also support, by transforming foreign order criteria into
aggregates).
Thus a much more powerful introspection is needed to decide what goes on
the inside and outside of the prefetch subquery. This is mostly done now
by the augmented _resolve_aliastypes_from_select_args to track
identifiers it saw (
97e130fa48), and by extra logic considering what
exactly are we grouping by.
Everything is done while observing the "group over selection +
aggregates only" rule, which sould allow us to remain RDBMS agnostic
(even for pathological cases of "MySQL-ish aggregates").
As a bonus more cases of "the user knows what they are doing" are now
correctly recognized and left alone. See a t/prefetch/with_limit.t diff
for a general idea of the scope of improvements.
Yes - there is more regexing crap in the codebase now, and it is
possible we will call _resolve_aliastypes_from_select_args up to 4(!!!)
times per statement preparation. However this allows us to establish a
set of test cases towards which to write optimizations/flog the dq
framework.
Peter Rabbitson [Sat, 9 Mar 2013 18:41:41 +0000]
There is no point of ordering the insides of a complex prefetch without a limit
Peter Rabbitson [Sat, 9 Mar 2013 10:57:39 +0000]
Consider unselected order_by during complex subqueried prefetch
Augment _resolve_aliastypes_from_select_args to collect the column names
it sees, allowing it to replace _extract_condition_columns() entirely.
In the process fix a number of *incorrect* limit_dialect tests
Peter Rabbitson [Thu, 7 Mar 2013 12:12:58 +0000]
Warn in case of iterative collapse being upgraded to an eager cursor slurp
Peter Rabbitson [Tue, 5 Mar 2013 06:01:33 +0000]
Move CDBI code out of the main ResultSet implementation
Peter Rabbitson [Tue, 5 Mar 2013 05:49:53 +0000]
Still do null-branch pruning when we are using our own inflate_result()
52864fbd was too aggressive in removing stuff - inheritance no longer
matters, but which method we will be calling does. If we are still using
our own inflate_result() there is no point of doing the double work of
blessing and then skipping null branches.
Peter Rabbitson [Tue, 5 Mar 2013 01:55:51 +0000]
Forgotten cruft after
52864fbd5
Peter Rabbitson [Thu, 28 Feb 2013 17:12:26 +0000]
Rename some private methods/attributes to align with what they do
No functional changes, just a s///
Peter Rabbitson [Thu, 28 Feb 2013 07:44:08 +0000]
Remove some superfluous expensive try blocks
We already know that the relationship exists, and ->related_source without
a schema returns undef anyway
Peter Rabbitson [Thu, 28 Feb 2013 07:48:11 +0000]
Simplify more - remove loop and cleanup the while cond
Peter Rabbitson [Wed, 27 Feb 2013 10:19:43 +0000]
An underdefined root has to use the %cur_row_ids container
Otherwise we are polluting $cur_row_data with the extra "virtual id column"
value, and may end up stashing it back on iterative cursor parsing
Peter Rabbitson [Wed, 27 Feb 2013 10:01:12 +0000]
MOAR optimization - tracking is_new_res is double work
We can get the root node assembler to do that for us instead
Also remove more of the superfluous ||= assignments
Peter Rabbitson [Wed, 27 Feb 2013 09:35:17 +0000]
BAIL_OUT stops the entire test run - do not want that
Peter Rabbitson [Sun, 24 Feb 2013 17:45:23 +0000]
Scale back validation of the 'as' attribute (revert
95e41036)
It turned out that users employ invalid-but-sensical inflation maps in
production. Remove the early sanity check of the infmap and move the code
throwing an exception all the way back to ::Row
Follow through this thread for more details:
http://lists.scsys.co.uk/pipermail/dbix-class/2013-February/011115.html
Peter Rabbitson [Sun, 24 Feb 2013 16:56:53 +0000]
Clarify result_class tweaking on active/cached cursors
We need this to simplify logic of result_class type caching
Peter Rabbitson [Sun, 24 Feb 2013 10:49:58 +0000]
Remove test cruft forgotten after
52864fbd
Peter Rabbitson [Sun, 24 Feb 2013 10:41:58 +0000]
Do not rely on Data::Dumper to produce rolled out hashrefs
Peter Rabbitson [Sun, 10 Mar 2013 11:10:06 +0000]
Merge branch 'master' into topic/constructor_rewrite
Peter Rabbitson [Sun, 10 Mar 2013 10:21:30 +0000]
Abraxxa-proof the distbuild (disallow `make manifest dist`)
This does not work under dmake (there is no $(MAKECMDGOALS)), but it does
not seem to have adverse effects either
Peter Rabbitson [Sun, 10 Mar 2013 10:05:06 +0000]
Exclude DBICTest namespace from stacktraces
Peter Rabbitson [Fri, 8 Mar 2013 17:00:57 +0000]
Augment
1b6cbedd (reverting my moronic use of preamble in EU::MM)
Instead of whacking things during the MY::distdir override, properly
override MY::postamble for upload prereq check injection
Graham Knop [Fri, 8 Mar 2013 16:56:39 +0000]
move the location of the extra upload checks so it isn't the default target
This should result in equivalent behavior since it is still before the
main upload rule.
Peter Rabbitson [Fri, 8 Mar 2013 10:06:33 +0000]
More comprehensive test of qualifier stripping for update/delete
Christian Walde [Tue, 5 Mar 2013 16:24:28 +0000]
Change the rt link from one requiring a login to a publicly accessible one
Also switch to https:// whatever can be reasonably switched
Peter Rabbitson [Tue, 5 Mar 2013 05:22:24 +0000]
Reorganize and freshen up the DocMap
It accumulated lots of stuff that is confusing / not relevant for beginners
Christian Walde [Mon, 4 Mar 2013 13:28:33 +0000]
Move DocMap link to top of DBIx::Class to prevent it being missed
Reorganize the section to be a bit more comprehensive
Peter Rabbitson [Tue, 5 Mar 2013 03:47:07 +0000]
Remove outdated (and kinda offensive) CONTRIBUTING text
A replacement should come shortly, courtesy of Getty
Peter Rabbitson [Tue, 5 Mar 2013 05:52:21 +0000]
And more fulltest dep conflicts
Peter Rabbitson [Tue, 5 Mar 2013 03:25:11 +0000]
Clarify wtf do we have a _bool
Christian Walde [Fri, 1 Mar 2013 17:08:19 +0000]
Require latest EU::MM at dist-building time to avoid $-escaping issues
Peter Rabbitson [Sat, 2 Mar 2013 06:16:46 +0000]
Do not auto-install dist-building dependencies in author mode
Instead only require them for actual make dist/distdir/upload runs
Peter Rabbitson [Fri, 1 Mar 2013 16:02:03 +0000]
Smoke all branches on travis except for blocked* and wip/*
Peter Rabbitson [Fri, 1 Mar 2013 15:41:20 +0000]
Another adjustment of travis depinstall order
Peter Rabbitson [Fri, 1 Mar 2013 09:05:38 +0000]
Punt TODO until the dateops work merges
Peter Rabbitson [Fri, 1 Mar 2013 08:46:54 +0000]
This infrastructure was removed ages ago by
263e41be
Peter Rabbitson [Fri, 1 Mar 2013 08:42:15 +0000]
Remove TODO that could never be made to work (revert
c49fcf72)
I do not know what groditi was thinking - the behavior codified makes 0 sense
Alexander Hartmaier [Fri, 1 Mar 2013 13:09:42 +0000]
Release v0.08209
Peter Rabbitson [Thu, 28 Feb 2013 14:46:48 +0000]
Fulltests deps clarification
- CDBI::Plugin::DeepAbstractSearch already depends on CDBI
- Install DateTime earlier in the CLEANTEST=false cycle
Peter Rabbitson [Thu, 28 Feb 2013 09:02:56 +0000]
Guard against exceptions in _describe_connection
Stuff like this happens otherwise:
http://lists.scsys.co.uk/pipermail/dbix-class/2013-January/011085.html
Peter Rabbitson [Wed, 27 Feb 2013 12:32:00 +0000]
Whitespace-check the travis scripts as well
Peter Rabbitson [Wed, 27 Feb 2013 10:33:13 +0000]
Shuffle travis CLEANTEST=false depchain again
Peter Rabbitson [Wed, 27 Feb 2013 10:27:50 +0000]
Test::Strict is smarter now
Peter Rabbitson [Mon, 18 Feb 2013 07:37:54 +0000]
Regex /o is *EVIL* - no idea why I even thought of using that
Peter Rabbitson [Tue, 26 Feb 2013 08:08:44 +0000]
Warn on signs of Moose-borkage (in case it gets to be the first new())
Peter Rabbitson [Sat, 23 Feb 2013 15:16:45 +0000]
Adjust CLEANTEST=false depinstall a bit more
David Schmidt [Wed, 20 Feb 2013 13:46:08 +0000]
Fix cookbook - missing cond in 'Equivalent SQL'
Peter Rabbitson [Sat, 23 Feb 2013 14:52:50 +0000]
Instrument the lockfile creation failure
Attempting to get to the bottom of http://www.cpantesters.org/cpan/report/
27f16417-89ea-1014-a33e-b361b1e9163f
Peter Rabbitson [Sat, 23 Feb 2013 14:17:47 +0000]
Fix regression breaking search on prefetched rel (broken by
5e2a0518)
Boy 0.08205 was a bad release, so much crap went in undetected by
any of our tests :( Maybe it's time for Devel::Cover...?
Peter Rabbitson [Sat, 23 Feb 2013 14:13:32 +0000]
Uncomment disabled test (not sure why it was)
Peter Rabbitson [Wed, 20 Feb 2013 10:56:29 +0000]
EXPERIMENTAL Release v0.08241
Peter Rabbitson [Wed, 20 Feb 2013 11:05:31 +0000]
Clarify prefetch documentation a bit, remove the nonsensical 0.09 warning
Peter Rabbitson [Wed, 20 Feb 2013 10:49:45 +0000]
Sanity-check columns added as primary key
Peter Rabbitson [Wed, 20 Feb 2013 10:12:35 +0000]
Optimize the HRI-direct collapser even more
Since we know that we will never output null-branches in the case of
HRI, we can wrap the related assemblers in a definedness condition to
never fire on a null branch, and skip entirely the calculation of
non-NULL %cur_row_ids.
Peter Rabbitson [Tue, 19 Feb 2013 20:57:13 +0000]
Fatalize warnings within the compiled row parsers
Encountering an undef value anywhere in this code is a sign of some glaring
omission. Perhaps a nullable column is annotated as is_nullable => 0 or
something similar. When this is the case we need the collapsing to stop
right there, as it is no longer safe to proceed.
Peter Rabbitson [Tue, 19 Feb 2013 20:54:16 +0000]
Modify the null-branch pruning introduced in
ce556881, restore compat
In the case of "direct to HRI" we want to throw stuff away as before. In
other cases however we no longer take an educated guess when to prune.
Instead we mark each null-branch by simply blessing its containing
arrayref. This allows us to keep the arguments to inflate_result 100%
backwards compatible, while at the same time allowing "enlightened"
inflate_result implementations to skip over the dead branches with
minimal effort.
Both ::Row::inflate_result and ::HRI::inflate_result were adjusted to
react correctly to these marks. As a result the HRI folder gained
another 5% speedup (unless sidestepped by the direct-to-HRI code, which
is naturally much much more efficient).
The current name of the "null class" is stored in the global
$DBIx::Class::ResultSource::RowParser::Util::null_branch_class. Given
that the entire codebase begs for standalone CPAN extraction this should
do for the time being.
While implementing the test changes it became clear that
Test::More::is_deeply does not cut it (it ignores the blessed-ness of
structures by design: https://github.com/schwern/test-more/issues/347).
As a result a dep on Test::Deep was added, and several of the tests
looking at inflate_result RVs were converted.
Peter Rabbitson [Wed, 20 Feb 2013 09:57:03 +0000]
Add optdep on CPAN::Uploader to get an effortless `make upload`
Peter Rabbitson [Wed, 20 Feb 2013 09:35:00 +0000]
Even more distbuilding checks
Frew's environment (and *only* his environment) keeps producing weirdly
broken dists. Add an extra check for this until we figure out how exactly
his environment is broken.
Extra check tested on cygwin and strawberry for good measure.