Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯 [Sun, 24 Mar 2013 11:38:23 +0000]
quick-start documentation
* ready-to-use database file and schema classes
* introduce CD year column (already used in ::ResultSet docs)
* link from main synopsis
Dagfinn Ilmari Mannsåker [Fri, 21 Jun 2013 14:58:18 +0000]
Don't try to run pperl --kill if we didn't find PPerl
There might be an unrelated pperl binary in the user's path, so avoid
running it unless we actually have PPerl.pm installed
D. Ilmari Mannsåker [Mon, 3 Jun 2013 14:27:46 +0000]
Add header for custom coderef join conditions
The conditon docs are huge, making it hard to point people to the
coderef syntax when they need it, so add a header that can be linked
directly to.
Alexander Hartmaier [Wed, 8 May 2013 16:09:35 +0000]
Replace $row with $result in all docs
to be consistent and to clarify various return values
for example:
$result->update() returns $result
before the example was
$row->update() returns $result
which doesn't make clear that it's the same object the method was called on
Alexander Hartmaier [Wed, 8 May 2013 15:39:12 +0000]
fixed xt/pod.t failure in Row.pm
Peter Rabbitson [Mon, 29 Apr 2013 22:00:01 +0000]
Release v0.08250
Peter Rabbitson [Mon, 29 Apr 2013 21:49:30 +0000]
This stuff is done (either now or earlier)
Peter Rabbitson [Fri, 26 Apr 2013 16:10:06 +0000]
Kill intra-devrel changelog entry
The log is large enough as it is, hence keeping only things that
are relevant when upgrading from 0.08210 to current
Matt Phillips [Fri, 26 Apr 2013 13:59:52 +0000]
devrel 0.08249_05
Peter Rabbitson [Fri, 26 Apr 2013 11:57:38 +0000]
Do not invoke the pk accessor in filter deflate
Matt Phillips [Thu, 25 Apr 2013 17:56:36 +0000]
Stop adding empty caches to resultsets chained off prefetched objects
Prior to ce55688, the related_rs cache loading mechanism only conditionally
loaded if the base rs cache was defined. After this was removed an empty
arrayref (meaning "no related results") could potentially be set as the cache.
This commit ensures the cache is only set when there are actual cache results.
Jordan Metzmeier [Wed, 24 Apr 2013 14:58:39 +0000]
fix syntax error in pod documentation for find_or_new
Peter Rabbitson [Wed, 24 Apr 2013 05:19:33 +0000]
Devrel 0.08249_04
Peter Rabbitson [Wed, 24 Apr 2013 03:31:55 +0000]
Unbreak devrel version checks
One needs to supply the literal (string) value of a devrel to VERSION()
otherwise the checks fail. However in this case 5.8 emits annoying warnings.
Abstract the whole insanity in a neatish util function and use that.
Peter Rabbitson [Wed, 24 Apr 2013 03:23:43 +0000]
Stop instantiating a cursor on single() use
This minor pessimization snuck in all the way back in
4e9fc3f3.
I am actually not entirely sure whether this isn't a bug - after
all this way Cursor::Cached and friends are bypassed. However
0.08210 has an identical behavior, thus sod it
Peter Rabbitson [Wed, 24 Apr 2013 02:47:32 +0000]
Fix very subtle but deadly bug in single()
The _select_args result storage introduced in
975b573a did not take
into account that single() operates on the $rs itself, not a fresh
one. As such the first single() arg would be carried around and then
applied to subsequent next() etc iterations. Stop that, as we only
need the attrs in case of collapse => 1 and single() explicitly does
not support this.
While at it do not reuse the cached args at all - while it *appears*
safe, it may very well not be. Leave this for another day
Peter Rabbitson [Wed, 24 Apr 2013 03:32:42 +0000]
Require bugfixed (and a tad faster) CAG
Peter Rabbitson [Wed, 24 Apr 2013 01:45:19 +0000]
Bump minimum Test::Pod Dependency
In
47589465 we started feeding dirs to all_pod_files_ok - only Test::Pod 1.42
understands that
Peter Rabbitson [Mon, 22 Apr 2013 11:53:10 +0000]
... and devrel 0.08249_03
Peter Rabbitson [Sun, 21 Apr 2013 07:42:38 +0000]
Devrel 0.08249_02
Peter Rabbitson [Sun, 21 Apr 2013 06:57:37 +0000]
Make some travis confs smoke latest -dev offerings from CPAN
Based on the Test::Builder dev-testing introduced in
992a24f6
Peter Rabbitson [Mon, 22 Apr 2013 07:57:59 +0000]
It seems the upcoming DBD::SQLite fixes the txn sync issues
Short circuit the travesty introduced in
2aeb3c7f
Peter Rabbitson [Sun, 21 Apr 2013 07:23:30 +0000]
Fix test failures with DBD::SQLite 1.38_02
This is what
fb88ca2c was supposed to fix in the first place >.<
Peter Rabbitson [Sun, 21 Apr 2013 07:08:07 +0000]
Silence pesky Devel::Cycle warning in leak test on 5.12+
Peter Rabbitson [Sun, 21 Apr 2013 15:31:39 +0000]
And of course the test pragma is not supported everywhere
Similar issue but no solution: http://osdir.com/ml/sqlite-users/2010-01/msg00220.html
Experimentally determined cutoff at 3.7.9
Peter Rabbitson [Sat, 20 Apr 2013 23:23:55 +0000]
Devrel 0.08249_01
Peter Rabbitson [Sat, 20 Apr 2013 22:09:54 +0000]
Fix tests failing due to unspecified resultset retrieval order
An upcoming version of DBD::SQLite bundles an SQLite library
with different behavior wrt retrieval of unordered indexed columns.
Fix all tests that could be affected now or in the future, and
add travis smoking to detect the condition early
Peter Rabbitson [Tue, 9 Apr 2013 13:26:52 +0000]
deployment_statements() and cursor_class() are storage-dependent
We need some sort of generic test for this, so we stop dropping stuff
on the floor. The logic is something like "if a public method is overriden
in a DBI:: subclass - we need to mark it for resolution". E.g.
rabbit@Thesaurus:~/devel/dbic/dbgit$ grep deployment_statements -r lib/DBIx/Class/Storage/DBI/
lib/DBIx/Class/Storage/DBI/Pg.pm:sub deployment_statements {
lib/DBIx/Class/Storage/DBI/Replicated.pm: deployment_statements
lib/DBIx/Class/Storage/DBI/mysql.pm:sub deployment_statements {
lib/DBIx/Class/Storage/DBI/SQLite.pm:sub deployment_statements {
lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm:sub deployment_statements {
Peter Rabbitson [Wed, 10 Apr 2013 03:01:24 +0000]
Cleanup logic of _determine_driver - do not fire unless we have conninfo
Also switch some connection init warnings s/carp/carp_unique/
Peter Rabbitson [Mon, 8 Apr 2013 08:11:46 +0000]
More robust tests of dependency lazy-loading and delay of more req loads
Inspired by the lazy-loading chase in
723f25e0
Skip the test entirely on 5.8 - it is becoming too difficult to predict
extra dependency load order
Peter Rabbitson [Mon, 8 Apr 2013 09:21:27 +0000]
Escape more frames when determining carp/throw_exception originator
Augments
5e0e5426b
Peter Rabbitson [Tue, 9 Apr 2013 07:45:25 +0000]
Tweak timing of t/zzzzzzz_perl_perf_bug.t - we started getting false positives
http://www.cpantesters.org/cpan/report/
356dd340-9de0-11e2-9265-e31b922ed931
http://www.cpantesters.org/cpan/report/
2e2063f1-6bf4-1014-817e-b9974151da38
Not considering dropping the test because... well it is a good test ;)
Peter Rabbitson [Mon, 1 Apr 2013 06:25:46 +0000]
Test live mssql server generated SQL
Alexander Hartmaier [Tue, 16 Apr 2013 18:02:39 +0000]
Clarify how to use SQL functions as part of a larger search
Alexander Hartmaier [Tue, 2 Apr 2013 14:54:23 +0000]
Removed usage of plain_value bind value workaround in the cookbook
Brendan Byrd [Mon, 10 Dec 2012 17:41:23 +0000]
Support for $val === [ {}, $val ] in literal SQL + bind specs
This wraps up the changes started in
0e773352. Now DBIC bind values can
be specified just like the ones for SQL::Abstract as long as no bind
metadata (e.g. datatypes) is needed
Also added an explicit check to catch when a non-scalar non-stringifiable
value is passed without a bind type metadata
Peter Rabbitson [Fri, 19 Apr 2013 14:49:09 +0000]
Merge branch 'topic/constructor_rewrite' into master
Consolidate changelog from the 0.0824x-TRIAL cycle
Peter Rabbitson [Fri, 19 Apr 2013 14:22:46 +0000]
Add (slowish) sanity check to detect incorrect non-nullable metadata
We can't get away with this - the alternative is a cryptic 'Use of uninitialized value'
exception - good luck debugging that
Peter Rabbitson [Fri, 19 Apr 2013 12:32:06 +0000]
Explicitly disallow redirection of has_many columns to main object
This can never work in practice, but it is too obscure to have a user catch it
Peter Rabbitson [Fri, 19 Apr 2013 08:21:14 +0000]
Store the final calculated select args in the original $rs
This is extremely ugly and ineffective, but we need it for some sanity checks
so that 0.08250 can ship. The whole thing needs to be reworked with a new
rsattrs instance, but that's another battle
Peter Rabbitson [Fri, 19 Apr 2013 09:21:36 +0000]
Misc cleanup, no functional changes
Peter Rabbitson [Thu, 18 Apr 2013 15:14:21 +0000]
Cut down amount of calls to _resolve_aliastypes_from_select_args
Peter Rabbitson [Wed, 17 Apr 2013 13:21:08 +0000]
Make 'filter' rels work half-way sanely with partial prefetch
Peter Rabbitson [Wed, 27 Mar 2013 11:42:15 +0000]
Another blast from the past - fix distinct/order behavior borked by
d59eba65f
While the SQL we test for is valid syntax - the result it produces makes
zero sense for these resultset arguments. Reshuffle the distinct construction
and reuse the codepah for order_by rewrites.
This is a heavy change, but it is *extremely unlikely* anyone was relying on
the previous behavior - any aggregate value would have been wrong...
Peter Rabbitson [Tue, 26 Mar 2013 07:56:40 +0000]
Fix "current rs is always first in from" brainfart introduced in
893403c81
Dear self from 4 years ago - what were you thinking? In any
case I can't recognize why this is needed so cleansing it with fire
Matt S Trout [Fri, 20 Apr 2012 03:20:25 +0000]
Variation of dq's
d35a4e048 - sanify multiplying join prune
Use a private more descriptive attr name
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