Peter Rabbitson [Tue, 1 Jul 2014 08:45:02 +0000]
namespace::autoclean is a really stupid idea - purge with fire
Peter Rabbitson [Sat, 28 Jun 2014 10:23:52 +0000]
Forgotten reenable of syntax test to guard for
37af2968e
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
Alexander Hartmaier [Thu, 8 Aug 2013 08:07:51 +0000]
Improved docs for ResultSet columns attribute on how to retrieve related columns
Alexander Hartmaier [Thu, 18 Jul 2013 16:31:46 +0000]
More coherent +(columns/select/as) quoting notices and descriptions
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.
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)
Peter Rabbitson [Mon, 16 Jun 2014 14:37:27 +0000]
Minor optimization of codepath (no func changes)
Peter Rabbitson [Mon, 16 Jun 2014 14:15:44 +0000]
Fix ::Ordered in combination with delete_all
See pod-changes for description of the solution. I cringe but... oh well
Peter Rabbitson [Mon, 16 Jun 2014 12:28:25 +0000]
(travis) Announce what we set during POISON_ENV
Peter Rabbitson [Mon, 16 Jun 2014 12:21:59 +0000]
Remove vestigial test envvar
Peter Rabbitson [Fri, 13 Jun 2014 14:37:31 +0000]
More fallout of the _resolve_cond refactor
03f6d1f7
I had in the back of my mind "one can't just create random objects" but
figured it may work anyway - WROOOOOOOONG. Instead pass through the hash
as before, will need to rethink that part before settling on an API for
resolve_relationship_condition. FML
Peter Rabbitson [Thu, 12 Jun 2014 04:53:38 +0000]
Fix test tripping on external warnings
Peter Rabbitson [Thu, 12 Jun 2014 04:54:12 +0000]
Even more robust _resolve_condition shim - guess rel_name when needed
Karen Etheridge [Wed, 11 Jun 2014 19:46:25 +0000]
replace all remaining uses of self_rowobj with self_resultobj in pod, test schemas
Gerda Shank [Mon, 10 Feb 2014 19:22:06 +0000]
Add (now passing) tests for set_from_related() via 'foreign_resultobj'
Peter Rabbitson [Wed, 11 Jun 2014 14:32:59 +0000]
Add foreign_resultobj to the customrel signature
Tests in next commit
Peter Rabbitson [Wed, 11 Jun 2014 14:09:22 +0000]
Pedantry - settle on rel_name vs relname, consistency throughout
Only outlier is relname_to_table_alias, which should have never existed
in the first place. Punting deprecation/etc cycle until future Oracle
work... sigh
Peter Rabbitson [Wed, 11 Jun 2014 13:22:31 +0000]
Rename (with a silent compat shim) couple of badly named customcond args
foreign_relname makes absolutely no sense - it *is* a relationship after all,
of course it has a name. Now renamed to rel_name to be consistent with
the relationship condition resolver
self_rowobj uses the old rowobj nomenclature - switch to self_resultobj
Peter Rabbitson [Wed, 11 Jun 2014 13:51:30 +0000]
Centralize custom rel args check, be more thorough
Peter Rabbitson [Wed, 11 Jun 2014 11:15:02 +0000]
Adjust error messages - joinfrees can be returned from noncode rels
Peter Rabbitson [Wed, 11 Jun 2014 10:05:13 +0000]
First step to add some sanity to _resolve_condition
The original problem starts here:
<mst> oh, yeah, I just used to check ref and randomly swap things
<mst> it worked for enough years :)
<ribasushi> I will be forwarding you my psychiatrist bill
READ DIFF AT YOUR OWN RISK
Over the years _resolve_condition has accumulated 3 (or 4, or 5, depends
how you look at it) distinct call-modes. None having anything to do with
another. Also it is a hot method, holding crucial functionality, which
of course means that currently at least 3 projects on CPAN are using it,
despite the private attribute. Which in turn means couple more orders of
magnitude of users on the DarkPAN. Thus just killing this method
outright *without a replacement* is not an option.
A from-scratch replacement in the face of only one person currently
*barely* understanding this codepath is a scary proposition.
Instead create an elaborate (and scarily complete) shim to proxy to a
new method holding all the logic (with the idea of making it an official
API in the coming commits).
There are no changes to any other codepaths, as this is how we ensure that
the shim is sane, and works. Next step is to erradicate all cases of the old
call in the current codebase (while leaving the sub/shim intact)/
Now let's see if we can fix CampusExplorer's bugs first...
Peter Rabbitson [Tue, 10 Jun 2014 11:54:32 +0000]
Fix incorrect handling of custom relationship conditions containing literals
Peter Rabbitson [Fri, 6 Jun 2014 16:38:52 +0000]
Revert heading change from
06752a03d, centralize the URL spec
There were several broken links referring to the old way of doing
things, and help/support sounds better anyway. Reverting with added
comments and whatnot
Peter Rabbitson [Wed, 4 Jun 2014 23:44:37 +0000]
Fix grave resultset-level delete/update bug
In case of a read-modify cycle (usually due to multicolumn PK, without
multicolumn IN support) DBIC would end up with a null condition and nuke
the entire underlying table from orbit
I have no words towards my younger self...
Peter Rabbitson [Wed, 4 Jun 2014 23:10:50 +0000]
Do not skip running from_storage filter when a NULL is returned
Peter Rabbitson [Wed, 4 Jun 2014 23:05:31 +0000]
Use a nullable column for the ::FC test
This is just a retarget, no test was actually modified
Peter Rabbitson [Wed, 4 Jun 2014 12:53:48 +0000]
Teach FC about literals
Peter Rabbitson [Wed, 4 Jun 2014 11:55:30 +0000]
A number of equivalent-logic ::FC refactors
Stop invoking a comparison on the unfiltered values - delegate it properly
to set_column()
Peter Rabbitson [Wed, 4 Jun 2014 11:28:42 +0000]
Reorganize IC column setters
Should again result in no functional changes
Peter Rabbitson [Mon, 2 Jun 2014 12:05:45 +0000]
Rename some variables and reformat the FC/IC codepaths for clarity
Zero functional changes
Peter Rabbitson [Mon, 2 Jun 2014 10:20:45 +0000]
Clarify FC/IC conflict exception
Peter Rabbitson [Sat, 31 May 2014 09:34:29 +0000]
Call mro reinit in tests only on 5.8
Peter Rabbitson [Wed, 4 Jun 2014 00:17:20 +0000]
Fix incorrect handling of stringifiable objects in cond collapser
Thinko introduced in the recent
8d005ad9
Peter Rabbitson [Wed, 4 Jun 2014 03:30:26 +0000]
Consolidate handling of "is this a literal" and "is this a value"
In the process fix inability of IC to deal with \[], and simplify
the overal codepath bind value passing codepath
Aside from the bugfixes there should be no functional changes
Work inspired by a report and preliminary patch from dim0xff++
Peter Rabbitson [Tue, 27 May 2014 23:21:13 +0000]
Use the correct $PROGRAM_NAME for the initial dbicadmin POD gneration
Karen Etheridge [Tue, 27 May 2014 23:09:20 +0000]
spelling fix
Peter Rabbitson [Mon, 26 May 2014 11:47:52 +0000]
Retire DBIC/SqlMakerTest.pm now that SQLA::Test provides the same function
Peter Rabbitson [Wed, 28 May 2014 03:04:27 +0000]
Switch most remaining debug-hooks to $dbictest_schema->is_executed_querycount()
Peter Rabbitson [Tue, 27 May 2014 17:17:26 +0000]
Retire DBIC::DebugObj, replace with $dbictest_schema->is_executed_sql_bind()
This cuts down on a lot of the silliness with debugcb/debugobj, and makes
for more precise tests as a whole. Went through great pains to not disturb
any existing tests, fingercross this is indeed the case
Read under -w for sanity
Karen Etheridge [Tue, 27 May 2014 23:09:20 +0000]
spelling fix
Peter Rabbitson [Tue, 27 May 2014 16:58:12 +0000]
Excise live test left over after
ac0c082542
No access to a live test system currently, and likely the test is incorrect
anyway (no mention of significant parenthesis)
Peter Rabbitson [Tue, 27 May 2014 06:29:46 +0000]
Consolidate pg/mysql and standalone SQLite savepoint tests to run on all 3
A larger consolidation will take place later with T::WV, but all in due time
Peter Rabbitson [Tue, 27 May 2014 11:15:45 +0000]
Fix multiple savepointing transactions on DBD::SQLite
Problem was missed during review of
86a51471ce (how the fuck did I let this
abomination through anyway), and not encountered due to insufficient testing.
The naive statement parser in DBD::SQLite when running against older libsqlite
mistakenly treats ROLLBACK TRANSACTION TO... as an actual TXN rollback, and
as a result desyncs the internal AutoCommit flag state [1]
Fix by simply using the shorter (still valid) syntax [2], and by removing the
sloppy workaround hiding the actual problem.
[1] https://github.com/DBD-SQLite/DBD-SQLite/blob/1.42/dbdimp.c#L824:L852
[2] http://www.sqlite.org/lang_savepoint.html
Peter Rabbitson [Tue, 27 May 2014 11:34:31 +0000]
Fix erroneous todoification in sqlite test
Peter Rabbitson [Tue, 27 May 2014 08:22:29 +0000]
Less warning noise from sqlite test
Peter Rabbitson [Tue, 27 May 2014 08:09:43 +0000]
Move the DSN-lock machinery from
8d6b1478d into DBICTest::BaseSchema
This is just a c/p job, expecting zero functional changes
The t/admin/02ddl.t are cosmetic changes fixing a nested &cref leak never
before encountered on <= 5.8.7
Peter Rabbitson [Tue, 27 May 2014 08:05:08 +0000]
Consolidate lib-wide frameskip, adjust the ::RunMode loading order
Peter Rabbitson [Tue, 27 May 2014 05:53:38 +0000]
Reaching for IO::File here makes no sense
Peter Rabbitson [Tue, 27 May 2014 05:50:48 +0000]
This test was essentially c/p-ed in
2cc3a7be3, consolidate
The overriding difference is the new-connection == new-storage == new-sqla
Add an explicit codepath to test that, but overall there is plenty of
other places that verify this behavior to death
Examine under -w -C -M to make sense out of the consolidation (minimal
changes were attempted)
Peter Rabbitson [Sun, 25 May 2014 09:52:13 +0000]
Improve complex order+prefetch exception message
Naveed Massjouni [Fri, 9 May 2014 18:51:26 +0000]
Updated discard_changes docs regarding { force_pool => 'master' }
Alexander Hartmaier [Wed, 5 Mar 2014 17:43:48 +0000]
The initial (now passing) test for RT#93244 (fixed in
8d005ad9)
Peter Rabbitson [Sat, 17 May 2014 09:39:49 +0000]
Massively refactor and sanify condition collapsing
Wow... what a ride. This commit adds a faithful reimplementation of the
SQLA descend algorithm, but instead of SQL produces a reduced HASH that
nevertheless corresponds to the original query 1:1 (or so I *really* hope)
This is another one of these "I can try it with DQ but I don't even have
tests" stories, so once again opted to implement things the "dumb" way.
The benefits are quite substantial:
- Better deduplication of WHERE condition
- Consolidated functions - the vaguely similar logic in the current version
of _collapse_cond replaces almost the entirety of:
::DBIHacks::_extract_fixed_condition_columns
::ResultSet::_collapse_cond
::ResultSet::_stack_cond
- Extra fixes for create/populate inheritance corner cases
- More predictable SQL condition generation order (which incidentally may
prove problematic down the road with broken tests, but oh well, we'll
burn when we get there)
- Ton of extra tests and corner cases
We even managed to fulfill a longstanding TODO, even though it is a *lucky*
side-effect and not a real fix. Making a note to address this later... sigh.
This work started from
d8b7d9f58..337f3ee80, which while taking the right
direction had too many loose ends. ilmari++
Peter Rabbitson [Thu, 22 May 2014 12:34:11 +0000]
Remove dead code missed by cleanup
b72339859
Peter Rabbitson [Fri, 16 May 2014 09:31:21 +0000]
Add test ensuring we do not lose binds on esoteric RSC+distinct
Test inspired by auditing
cc2b92553 (a precursor of ad1d374e60)
Dagfinn Ilmari Mannsåker [Sat, 12 Apr 2014 17:29:47 +0000]
Refactor _recurse_fields to return the bind values
Only ->select actually wants it in $self->{select_bind}, the others
either don't care or want them somewhere else.
Peter Rabbitson [Thu, 22 May 2014 11:37:08 +0000]
Fix multi-value literal populate not working with simplified bind spec
This arcane use-case got missed when
1b5ddf23 was integrated
Peter Rabbitson [Wed, 21 May 2014 07:57:50 +0000]
Fix bogus reference to related class (introduced way back in
97c96475)
Peter Rabbitson [Tue, 20 May 2014 14:16:40 +0000]
Remove forgotten part of
a48693f4 (incompletely reverted by e327f126)
Mintywalker [Sat, 12 Apr 2014 17:13:10 +0000]
$pedantry =~ s/columns/column/
Peter Rabbitson [Thu, 10 Apr 2014 22:43:35 +0000]
Properly detect and test mysql v3 default JOIN behavior
While investigating how to rewrite the rather useless
39712b481, it became
clear that not only can the test be performed offline, but that there is
already a pseudo-test due to sqlite's version of 3.x.y being mistaken for
MySQL 3
Properly fix the test to check behavior on both versions 3 and 4, and in the
process fix a potential bug of a stale sqlmaker when a reconnect cycle takes
place against a *different* physical rdbms (which btw makes me realize another
problem with trying to do mixed-environment replication... sigh)
Peter Rabbitson [Thu, 10 Apr 2014 22:38:10 +0000]
Clarify that sql_maker is just a getter at this point
Peter Rabbitson [Tue, 11 Mar 2014 06:39:56 +0000]
Minimal optimization of the new+prefetch codepath (no func. changes)
Peter Rabbitson [Sat, 12 Apr 2014 04:36:01 +0000]
Fix missing true return lost during
e5a62c46f
This never resulted in a serious problem because it was papered over by a
bug in Class::C3::Componentised. Addressing it at the source requires a bit
extra coding, hence no new CC3C release yet.
Peter Rabbitson [Thu, 10 Apr 2014 11:10:55 +0000]
Add explicit AS keyword to RowNum (Oracle) limit dialect
This should have no effect on the actual query, only done to bring in line
with the generalized DQ engine
Peter Rabbitson [Thu, 10 Apr 2014 11:00:55 +0000]
Add extra fetch_first test for right-side-only order
Peter Rabbitson [Wed, 26 Mar 2014 07:11:43 +0000]
Add progress meter to travis builds
Peter Rabbitson [Fri, 11 Apr 2014 08:47:59 +0000]
Refactor the double-testing-install attempt under travis
Should be no functional changes, just shuffling to get everything
to run under run_or_err
Peter Rabbitson [Thu, 10 Apr 2014 11:28:16 +0000]
Reduce Travis' stamina
http://blog.travis-ci.com/2013-11-27-fast-finishing-builds/
Peter Rabbitson [Sat, 12 Apr 2014 21:00:00 +0000]
Commemorate the first DBIx::Class hackathon and beef up the contributor list :)
The event was a blast. A lot of very useful work was done and at least
one very thorny problem got resolved once and for all. For more info
check out the accounts of some of the participants at
http://dbix-class.org/hackathon01-
20140412
Sincere thanks go to all who attended:
Aaron "arc' Crane
Andrew Mehta
Colin "bfwg" Newell
Dagfinn Ilmari Mannsåker
Duncan Garland
Ian "idn" Norton
James "theorbtwo" Mastros
Jose Luis "pplu" Martinez
Jess "castaway" Robinson
Mark "mdk" Keating
Murray "minty" Walker
Oriol "uree" Soriano
Peter "ribasushi" Rabbitson
Stephen Peters
Tom "TBSliver" Bloor
As well as to the event sponsors who made this all possible:
Eligo http://eligo.co.uk/
Ctrl-o http://ctrlo.com/
EPO http://enlightenedperl.org/
See you all next time!
Dagfinn Ilmari Mannsåker [Mon, 7 Apr 2014 12:29:29 +0000]
Add Changes entry for empty related cache population
With a more user-oriented description than the commit message,
i.e. explaining the symptom fixed, rather than the underlying change.
Dagfinn Ilmari Mannsåker [Fri, 28 Mar 2014 16:48:17 +0000]
Populate caches for related result sets even if they're empty
Peter Rabbitson [Wed, 26 Mar 2014 07:11:43 +0000]
Add progress meter to travis builds
Naveed Massjouni [Tue, 11 Mar 2014 01:43:08 +0000]
fixed example in the DBIx::Class::Storage::DBI::Replicated synopsis
The example in the synopsis does not work. It should be
{ balancer_type => '::Random' } instead of { balancer => '::Random' }
Peter Rabbitson [Tue, 4 Mar 2014 08:39:49 +0000]
Fix pesky on_connect_* race condition abraxxa++ ilmari++
A race condition existed between storage accessor setters and the
determine_driver routines, triggering a connection before the set-cycle
is finished
Olaf Alders [Thu, 13 Feb 2014 21:47:22 +0000]
Fixes Pod typo.
Sean Zellmer [Thu, 20 Feb 2014 21:54:33 +0000]
Removed useless line of code in many_to_many
Alexandr Ciornii [Wed, 5 Mar 2014 20:48:55 +0000]
typos
Peter Rabbitson [Wed, 12 Feb 2014 14:48:42 +0000]
Shuffle prefetch torture test (no func. changes)
Peter Rabbitson [Mon, 10 Feb 2014 12:29:45 +0000]
PATH may be unset entirely
Tested with
~$ bash -c 'perl=$(which perl); unset PATH; $perl t/54taint.t'
Peter Rabbitson [Mon, 10 Feb 2014 08:48:11 +0000]
Fix travis prereq extractor (not sure how this ever worked...)
Peter Rabbitson [Mon, 10 Feb 2014 07:58:39 +0000]
Remove vestigial unused @INC munge found after
a8de639b
Peter Rabbitson [Mon, 10 Feb 2014 07:18:46 +0000]
Harden t/54taint.t against possible future changes in -T
Peter Rabbitson [Sat, 8 Feb 2014 09:48:12 +0000]
Make sure the taint test does some DB-level ops
Graham Knop [Sat, 8 Feb 2014 09:34:52 +0000]
Really fix @INC munging of the taint test
Now runs even with a plain `perl t/54taint.t`
Peter Rabbitson [Fri, 7 Feb 2014 04:39:41 +0000]
Apparently this is more stable historically... boggle
Peter Rabbitson [Tue, 4 Feb 2014 07:25:24 +0000]
Duh, this will always be true
Peter Rabbitson [Fri, 31 Jan 2014 06:11:44 +0000]
Shipping the CI stuff to CPAN makes no sense
Peter Rabbitson [Fri, 31 Jan 2014 05:49:31 +0000]
Release v0.08270
Peter Rabbitson [Fri, 31 Jan 2014 04:29:02 +0000]
RT#87124 fixed, workaround no longer necessary
Peter Rabbitson [Thu, 30 Jan 2014 05:04:05 +0000]
Add Firebird over ODBC TravisCI testing
Peter Rabbitson [Fri, 31 Jan 2014 03:38:14 +0000]
Give Firebird (and Interbase) a common sqlt_type
Even though the parser/producer pair do not yet exist in SQLT, we also use this
value as the basis for the lockfile on parallel tests, hence it is important
Peter Rabbitson [Thu, 30 Jan 2014 12:00:41 +0000]
Fix datetimes in ODBC/Firebird (merge identical code left after
a870aa85e)
Peter Rabbitson [Wed, 29 Jan 2014 10:27:59 +0000]
Rudimentary DBI/DBD MDV
Peter Rabbitson [Wed, 29 Jan 2014 13:43:55 +0000]
Clarify parallel_installdeps design comment
Peter Rabbitson [Wed, 29 Jan 2014 13:25:12 +0000]
The trace formatter seems to register intermittent leaks - skip on 5.18 for now
Peter Rabbitson [Wed, 29 Jan 2014 12:47:08 +0000]
Fix undefined order sensitive test (no idea how it went undetected)
Peter Rabbitson [Wed, 29 Jan 2014 10:39:06 +0000]
Ints bound as DBI::SQL_BIGINT on SQLite < 1.37 do not work in functions
For all the meticulous testing of
04ab4eb1, 1363f0f5 and f3b1224b I
failed to notice that functions no longer work when they encounter
numbers bound as bigint (may as well have not bound them at all).
Happened due to shortsighted testing methodology as described in the
commit msg of
f3b1224b, a rudimentary MDV will be introduced in a later
commit to ensure this doesn't happen anymore.
Fix this by explicitly requirung DBD::SQLite 1.37 for bigint operations.
Examine patch under -w
Peter Rabbitson [Tue, 28 Jan 2014 18:49:22 +0000]
Release v0.08260