Dagfinn Ilmari Mannsåker [Fri, 12 Dec 2014 17:09:00 +0000]
Further clean up PostrgreSQL array types examples
- Add trailing comma in hashes
- Remove pointless 'day' key from update example
Dagfinn Ilmari Mannsåker [Thu, 11 Dec 2014 11:24:38 +0000]
Clean up PostgreSQL array types recipe
- Prefer { -value => [ … ] } syntax over \[ '= ?', [colname => [ … ]] ]
- Reference SQLA -value docs instead of array_datatypes
Dagfinn Ilmari Mannsåker [Wed, 10 Dec 2014 17:37:37 +0000]
Use SQL-standard quoting in Year2000CDs view
This lets DBICTEST_SQLT_DEPLOY=1 work with non-SQLite DBICTEST_DSN
Kevin L. Kane [Tue, 18 Nov 2014 13:02:33 +0000]
Fix updating multiple CLOB/BLOB columns on Oracle
The genric _dbi_attrs_for_bind caches the attribute hashrefs by data
type, so we can't modify them directly with column-specific data.
Instead, copy it and add the ora_field attribute to the copy.
Dagfinn Ilmari Mannsåker [Tue, 21 Oct 2014 21:48:15 +0000]
Make sure emacs doesn't try to indent with tabs
Peter Rabbitson [Wed, 22 Oct 2014 23:46:05 +0000]
Re-apply
1af6b9688 incorrectly removed by f8135512c
The `git shortlog` is additive, hence AUTHORS may never shrink. I *knew* that
ribasushi--
Peter Rabbitson [Wed, 22 Oct 2014 13:13:43 +0000]
Revert prematurely merged default insert support for Oracle (see below)
Note: the incorrect implementation is not the fault of the original submitter
(who can not be expected to know the vagaries of the execution path) nor is
the fault of the original reviewer (who can not be expected to remember said
vagaries for a storage they do not even use). I do not have recommendations
on how to avoid this situation in the future.
It is correct that the particular problem can not be solved on the level of
SQLMaker::Oracle like it was solved for MySQL. However the current fix applies
the default-on-empty way too early in the call stack - there is a lot of stuff
happening between where we would ideally be applying the workaround and the
current application site. With an Oracle storage the call-stack is roughly the
following:
( ... non-storage code )
-> ::Storage::DBI::insert
X -> ::Storage::DBI::_prefetch_autovalues
X -> (loop over) ::Storage::DBI::Oracle::Generic::_sequence_fetch
X -> determine if autoincs are accounted for
? -> assemble INSERT RETURNING container
-> ::Storage::DBI::_execute
-> ::Storage::DBI::Oracle::Generic::_prep_for_execute
-> ::Storage::DBI::_prep_for_execute
-> ::Storage::DBI::_gen_sql_bind
-> ::SQLMaker::Oracle::insert(...)
Setting up the "missing" default so early definitely affects the points marked
with X and possibly affects the code marked with ?. The issues that would come
out of this range from obvious failure modes to "this will be easily broken by
a future reshuffle" gut feeling.
The patch therefore needs reworking adding the extra pieces of logic either in
a new _gen_sql_bind hook, or at the very least in the already existing
conditional at the start of ::Storage::DBI::Oracle::Generic::_prep_for_execute
(though a hook of _gen_sql_bind is preferable).
Additionally the test needs to be expanded to exercise the case of pre-existing
test cases that trigger _prefetch_autovalue (the tests involving the source
SequenceTest in t/73oracle.t)
And lastly an explicit exception should be added to SQLMaker::Oracle::insert
to catch future changes to any code higher up, so that a refactor will not
silently end up calling SQLMaker::Oracle::insert with an empty insert-list,
throwing everything back to square one.
This commit reverts the following two patches, with the intention to merge a
fixed-up version shortly:
-
236b59c8
-
1af6b968
Dagfinn Ilmari Mannsåker [Tue, 21 Oct 2014 10:10:00 +0000]
Weaken $self to avoid leaks with nested closures on 5.8
Peter Rabbitson [Fri, 26 Sep 2014 02:20:51 +0000]
Cherry picks from current/for_cpan_index (flux due to not-yet-clear-policy)
This is an amalgamation of:
-
f6fff270
-
293dccfc (corrected version of b63585bd)
-
77cc50d1
Dagfinn Ilmari Mannsåker [Sat, 18 Oct 2014 17:31:43 +0000]
Silence with_deferred_fk_checks() warning on PostgreSQL 9.4
SET CONSTRAINTS can only be used in transaction blocks, and 9.4 warns
about this, so make sure we issue 'SET CONSTRAINTS ALL IMMEDIATE' before
committing the transaction.
Also fix it for Informix, which uses the same syntax and has the same
restriction.
Dagfinn Ilmari Mannsåker [Tue, 30 Sep 2014 10:30:33 +0000]
Add Lasse Makholm to AUTHORS file
Dagfinn Ilmari Mannsåker [Tue, 23 Sep 2014 18:33:37 +0000]
Only load DBICTest::Schema when needed in tests
Make sure to not vivify $DBIx::Class::VERSION, since before perl 5.16,
this causes ->ensure_class_loaded to think the class is loaded.
Dagfinn Ilmari Mannsåker [Tue, 23 Sep 2014 16:03:59 +0000]
Use Optional::Dependencies for CDBICompat and its tests
This allows the test to check for them before loading DBICTest and
DBIC, thus speeding up the test skips a lot (down from 14s to 1s for
'prove -l t/cdbi' on my Linux box, and down from 1026s to 871s for the
whole test suite on a Windows VM).
Lasse Makholm [Mon, 29 Sep 2014 16:37:32 +0000]
Unbreak $rs->create() with empty hashref on Oracle
Oracle does not support the INSERT INTO ... DEFAULT VALUES syntax used by
SQLMaker by default. Furthermore, Oracle has no way of inserting a row
without specifying any columns, so the only reasonably fix seems to be to
pick a column and supply the DEFAULT keyword as value for it.
This approach seems to work without problems, even for things like
sequence+trigger-as-auto-increment.
Peter Rabbitson [Fri, 26 Sep 2014 02:25:00 +0000]
Bump blead version
Peter Rabbitson [Thu, 25 Sep 2014 14:41:56 +0000]
Release v0.082800
Peter Rabbitson [Thu, 25 Sep 2014 14:37:41 +0000]
Some cleanups of Changes and adding 'Known issues'
Peter Rabbitson [Thu, 25 Sep 2014 14:37:16 +0000]
This was reinstated in
dc297536f
Peter Rabbitson [Thu, 25 Sep 2014 13:54:44 +0000]
Kill leaktest on smokers with 1.3xx Test::More alphas
This is done so that downstram dependencies of DBIC can be smoked as well,
the actual leaktest fix will come later when T::B stabilizes enough to go
into beta
Peter Rabbitson [Thu, 25 Sep 2014 12:07:46 +0000]
SQLA 1.79 shipped - revert tempextlib hack from
d0435d75
Peter Rabbitson [Thu, 25 Sep 2014 11:45:06 +0000]
Edit leaktracer diag texts to be ilmary-compliant :)
Peter Rabbitson [Thu, 25 Sep 2014 11:34:47 +0000]
Boldly take the author nicknames bold
Peter Rabbitson [Thu, 25 Sep 2014 03:27:34 +0000]
Even though perl_5 should be valid in 1.4, CPANTS barfs
Work around https://github.com/Perl-Toolchain-Gang/CPAN-Meta/issues/68
Peter Rabbitson [Thu, 25 Sep 2014 02:42:38 +0000]
Forgotten manifest adjust after
a2bd379666
Peter Rabbitson [Thu, 25 Sep 2014 02:41:29 +0000]
(travis) Cut the amount of threads we use in half
Hopefully this will stave off the out of memory issues
https://github.com/travis-ci/travis-ci/issues/2715
https://github.com/travis-ci/travis-ci/issues/2101
Peter Rabbitson [Wed, 24 Sep 2014 19:42:18 +0000]
Add catherder heading as per mst's insistence
Dagfinn Ilmari Mannsåker [Wed, 24 Sep 2014 15:52:28 +0000]
Fix literal SQL and bind values example in "columns" documentation
Peter Rabbitson [Wed, 24 Sep 2014 15:12:34 +0000]
Accomodate broken Test::More trials a bit better
Peter Rabbitson [Wed, 24 Sep 2014 14:16:30 +0000]
Fix failures in xt/authors: git2 preserves case from mailmapping
Karen Etheridge [Mon, 28 Jul 2014 19:02:23 +0000]
Document including literal SQL and values in a resultset with "columns"
Peter Rabbitson [Wed, 24 Sep 2014 06:53:51 +0000]
After
5268b1da populate remained the sole user of Data::Compare
Might as well throw it out - the check that takes place is rather rare and
a freeze-and-compare approach is likely more efficient anyway
Peter Rabbitson [Wed, 24 Sep 2014 04:28:06 +0000]
(travis) Attempt to grab more info on parallel_installdeps_notest failures
Peter Rabbitson [Fri, 14 Dec 2012 08:28:44 +0000]
New Pod::Inherit does not need Pod::Tree
Peter Rabbitson [Tue, 23 Sep 2014 07:04:32 +0000]
Clarify licensing, ensure footers are consistent throughout the project
Note - this *DOES NOT CHANGE* the licensing of the project in any way, it
is still dual-licensed like perl5, just as it was before this commit. All
additions are for clarifying purposes only.
The way licensing is presented is an amalgamation of information and
prior art found at the following sources:
- http://www.perlfoundation.org/cpan_licensing_guidelines
- https://metacpan.org/source/ETHER/Moose-2.1212/LICENSE
- `git log --color -w -p v5.20.0 ^perl-5.000^ -- Artistic`
Peter Rabbitson [Mon, 22 Sep 2014 10:35:38 +0000]
Deal with authorship properly, in a future-sustainable fashion
This module is arguably one of the most successful collaborative projects on
CPAN. Make it known to the world by introducing a clear canonical source of
authorship metadata.
I have been holding off jumping on the "contributors from git" bandwagon
because of multiple issues
- Not every contribution results in a direct, attributtable commit
- We already had an extensive contributor list, much larger than the shortlog
- Loss of ircnicks (a fine tradition started in
266bdcc3)
So this commit does the proverbial bullet-biting and introduces *proper*
handling of all the ins and outs, including author-mode (CI as well) tests
for proper attribution. As a side-effect we break a lot of the footer links,
to be fixed in next commit.
Btw as I write this `195 contributors made this library what it is today`...
Mind. Blown.
Peter Rabbitson [Sun, 21 Sep 2014 03:59:38 +0000]
Re-attribute a substantial chunk of docs, due to lost original author
The mysterious <g> is seen on the channel between Aug 24 and Sep 3 of 2008
talking to castaway and various other hackers, supplying a number of doc
patches and then vanishes. Due to the need of correct authorship imposed
by the next commit, reattribute the docs to castaway instead
This is the only such instance - all other authors have been accounted for.
Deemed acceptable as the name is entirely and utterly lost in the ether :(
Peter Rabbitson [Mon, 22 Sep 2014 18:35:15 +0000]
Initial AUTHORS stub (the last one where `git blame -C -C AUTHORS` worked)
Due to how git currently works one will need to `git log -S"line"` in the
future in order to find when a contributor entry was really made. Preserving
this particular arrangement historically, before more reordering and additions
come in the next commit.
Peter Rabbitson [Wed, 24 Sep 2014 03:15:54 +0000]
The revert
8494142c incorrectly killed 4d93345c, reinstating
The loading of IO::Handle is still needed as demonstrated by failing
SQLA optional tests. Bleh!
Peter Rabbitson [Wed, 24 Sep 2014 00:22:48 +0000]
Viciously deal with more strictures fallout
The 'what can possibly go wrong' blew up with RT#99083, there is definitely
more where this came from. Try to maintain safety by going to even greater
lengths ensuring we do not load any of it ourselves
Peter Rabbitson [Tue, 23 Sep 2014 23:29:46 +0000]
(travis) Bump tested perls a bit
Peter Rabbitson [Tue, 23 Sep 2014 23:25:53 +0000]
(travis) reload the already running RDBMS, as a precaution
Also get a newer libmysqlclient, just in case...
Peter Rabbitson [Mon, 22 Sep 2014 08:49:38 +0000]
Reorganize dist-time meta handling (no semantic changes)
Peter Rabbitson [Sun, 21 Sep 2014 18:00:27 +0000]
A massive amount of link fixes (just links, almost no rewording)
kryde++ for the insanely useful tool App::PodLinkCheck. It is a bit heavy
and way too noisy for automated use, but with some handholding it is
scarily effective (as can be seen by the sheer size of this commit)
Peter Rabbitson [Sun, 21 Sep 2014 01:23:38 +0000]
Proper end-of-file for DBIx/Class.pm
Matt S Trout [Mon, 7 Oct 2013 11:40:53 +0000]
Add forgotten bit preventing scan of where-binds (originally part of
1b8f2dd9)
Dagfinn Ilmari Mannsåker [Sat, 20 Sep 2014 12:24:00 +0000]
Add basic .dir-locals.el
Peter Rabbitson [Fri, 19 Sep 2014 17:43:57 +0000]
(travis) Attempt to revert
86370cc74, SC is too slow on uptake. Grumble
Peter Rabbitson [Fri, 19 Sep 2014 08:32:10 +0000]
Properly handle empty group_by/order_by
Peter Rabbitson [Thu, 18 Sep 2014 13:43:30 +0000]
Improve SQLT::Parser warning messages (build further upon
e089c417)
Peter Rabbitson [Wed, 17 Sep 2014 17:36:45 +0000]
Properly implement very sloppy and lazy hack from
bad0b73b
We are abusing local() here - might as well abuse it correctly.
This way we do not add a permanent shitty name to the relinfo structure and
nobody needs to fix their tests. Winning!
Peter Rabbitson [Wed, 17 Sep 2014 16:58:29 +0000]
Revert
e9f71ab2 - it ends up breaking a declared API
I should have thought of this earlier - a debug object is not necessarily
isa(IO::Handle) (the documentation never mentioned this). And indeed: the
tests of DBIx::Class::QueryLog do exactly this - they use an object with
just a print() method and absolutely nothing else.
So instead of disabling the sticky autoflush (which really is only a visible
change on STDERR dup) document this behavior and move on.
Peter Rabbitson [Tue, 16 Sep 2014 16:24:25 +0000]
Fix broken temporary backcompat shim for naughty _resolve_condition callers
The
9b96f3d41 refactor undid all the backcompat shims that were introduced
in
c0f445097. Reinstate the insanity until after 28...
Peter Rabbitson [Tue, 16 Sep 2014 08:04:59 +0000]
Multilevel find_or_(multi)create got inadvertently broken
Relax the check of what we feed to the relcond resolver
Peter Rabbitson [Tue, 16 Sep 2014 06:01:11 +0000]
Yet another loose end on the cond collapser
Fingercross this is the last one... this transform is turning out ot be a
bad bad bad idea :(((
Peter Rabbitson [Mon, 15 Sep 2014 13:32:28 +0000]
Ensure the tempextlib is available at distbuild time
Missed one spot to load ::_Util during
bbcc1fe8
Peter Rabbitson [Mon, 15 Sep 2014 06:22:24 +0000]
Put in place deprecation forgotten for several years
More info and rationale in the commit msg of
c200d949
Peter Rabbitson [Mon, 15 Sep 2014 06:11:55 +0000]
Split DBIC from SQLMaker test (deprecated in next commit)
Peter Rabbitson [Sun, 14 Sep 2014 18:59:58 +0000]
Ensure the custom rel cond resolver does not trigger forgotten compat shim
During the rush to get custom rels out the door (this is why rushing
fucking sucks),
a697fa31 introduced a shortsighted workaround into
::SQLMaker::_from_chunk_to_sql(). This code slipped consequent review
and made its way into the codebase... 4 FUCKING YEARS AGO!!! >:(
Since it is not known how much stuff relies on the insanity being there
(moreover we have tests that rely on it) leave things as is for the time
being. The only change is making the cond resolver *completely* oblivious to
the "single-element hash" workaround (albeit via a silly hack).
In the process exposed that ora-joins module is entirely incapable
of understanding non-equality conds... fml
See next commits for added warnings, etc.
Peter Rabbitson [Sun, 14 Sep 2014 18:41:55 +0000]
A more robust column equality extractor
It is a mistake to reach into $ret->{condition} - it may very well be a
non-hash structure. Also replace the silly regexping with the (already
regexed out) results of the info resolver
Peter Rabbitson [Mon, 15 Sep 2014 09:39:12 +0000]
Ensure undef_on_null_fk does not affect non-introspectable custom conds
Peter Rabbitson [Mon, 15 Sep 2014 08:40:39 +0000]
Yet another missed sanity check in the relcond resolver
rel/col duality is just hateful
Peter Rabbitson [Sun, 14 Sep 2014 18:55:55 +0000]
Make sure the me-relname-flip does not affect any error text
Peter Rabbitson [Mon, 15 Sep 2014 09:55:53 +0000]
Fix copy() assuming all columns are native
Peter Rabbitson [Sun, 14 Sep 2014 18:00:40 +0000]
Adjust for SQLA's API change
966200cc8
Peter Rabbitson [Mon, 15 Sep 2014 11:42:00 +0000]
(travis) Accommodate a slow mirror grrrrr
Peter Rabbitson [Mon, 15 Sep 2014 11:58:48 +0000]
(travis) Stop auto-upgrading everything on non-clean installs
It adds little value currently and makes version-specific installs difficult
(see next commit)
Tommy Butler [Wed, 10 Sep 2014 08:51:27 +0000]
Fix syntax error in ::Manual::Joining example
fixed syntax error on line 245 (missing closing curly bracket)
Closes: #60
Peter Rabbitson [Tue, 9 Sep 2014 23:38:43 +0000]
Fix incorrect cond construction in _minimal_valueset_satisfying_constraint
The function in question introduced in
d681f1bb (which builds upon work in
8e40a627) correctly uses _extract_fixed_condition_columns, but then fails to
account for all literals having their leading { '=' => ... } being stripped,
nor does it consider UNRESOLVABLE_CONDITION as a valid return value.
Tests and fixes to get this rolling, thanks go to Lianna Eeftinck for testing
and reporting \o/
Peter Rabbitson [Tue, 9 Sep 2014 23:48:35 +0000]
Ensure ::Schema::Versioned connects only once by reusing the main connection
Peter Rabbitson [Mon, 8 Sep 2014 11:06:59 +0000]
Stop using Sys::SigAction in pg tests
Peter Rabbitson [Mon, 8 Sep 2014 09:14:29 +0000]
Fix for gut-reaching travesty as reported by gbjk
Peter Rabbitson [Sun, 7 Sep 2014 11:20:18 +0000]
No longer use rel_info($rel)->{class} in the cond resolver
It turns out there are a lot of codebases there containing garbage in the
rel definition. Punt for after 0.082800 to lean up that mess.
Also be less strict on checking the foreign_values contents - downgrade
mismatches to a warning (but still hard-require ::Row ancestry)
Peter Rabbitson [Sun, 7 Sep 2014 11:11:30 +0000]
Simplify self_result_object argument check in cond resolver
Peter Rabbitson [Sun, 7 Sep 2014 11:04:04 +0000]
Minor relcond resolver refactor, no func. changes
Peter Rabbitson [Fri, 5 Sep 2014 09:14:36 +0000]
Skip malformed relationships in SQLT parser instead of vague warnings
Peter Rabbitson [Fri, 5 Sep 2014 09:05:46 +0000]
Move and simplify a chunk of parser code
No functional changes
Peter Rabbitson [Fri, 5 Sep 2014 08:33:40 +0000]
Make sure IO::Handle is loaded - missing stubs on older perls
Also adjust the documentation in the wake of the
e9f71ab2a change
Peter Rabbitson [Thu, 4 Sep 2014 22:59:01 +0000]
Make sure the resolve_cond shim attempts to lint the right thing
This only matters in compat mode, so sod testing
Peter Rabbitson [Fri, 5 Sep 2014 09:16:09 +0000]
(travis) Sorry metacpan, your mirror is simply shit >:(
Peter Rabbitson [Thu, 4 Sep 2014 15:53:32 +0000]
Changelog for RT#98161
Breakage introduced in
8d005ad9, fixed for good by a combination of 5268b1da
135ac69d and 95da0f23
Peter Rabbitson [Thu, 4 Sep 2014 12:28:25 +0000]
Better describe the _resolve_relationship_condition API
Peter Rabbitson [Thu, 4 Sep 2014 10:50:11 +0000]
Add one more spot of unroll
Peter Rabbitson [Thu, 4 Sep 2014 10:19:48 +0000]
One more fail-case missed in
135ac69dd
Now the test attached to RT#98161 actually passes... le sigh
At this point I am very wary of the entire codepath: yes, it is clearly the
right thing to do, and the logic is sound, but odd edge cases keep popping
up like this... OTOH there is no way to properly do equality inferrence
without this entire dance, in other words: rock&hardplace. Hopefully the
test suites will shake this out, apologoies to all affected :(
Peter Rabbitson [Thu, 4 Sep 2014 10:17:17 +0000]
Better optional diag in t/sqlmaker/dbihacks_internals.t
Peter Rabbitson [Wed, 3 Sep 2014 10:44:46 +0000]
Fix condition collapser corrupting -X operators
This is (fingercross) the complete fix for RT#98161
Peter Rabbitson [Tue, 2 Sep 2014 02:20:26 +0000]
Make sure empty cond collapser works on all positions
Adds another round of sql stabilization (akin to
5268b1da6)
Peter Rabbitson [Wed, 27 Aug 2014 06:32:52 +0000]
Make sure cond collapser works case insensitively
Peter Rabbitson [Fri, 22 Aug 2014 11:40:14 +0000]
Deduplicate (and stabilize) the result of _collapse_cond
Among other things set the stage to a fix of RT#98161 (later commit)
Peter Rabbitson [Fri, 22 Aug 2014 08:53:46 +0000]
Switch to a sane deduplication system
The original naive approach from
8e40a627f was utterly braindead and prone
to false positives. Fix this for good
Peter Rabbitson [Wed, 27 Aug 2014 06:01:31 +0000]
Remove a superfluous pair of []s in cond collapser
Stefan Hornburg (Racke) [Thu, 14 Aug 2014 11:56:55 +0000]
Fix "muse" typo in Relationship::Base's POD.
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.
Olaf Alders [Tue, 5 Aug 2014 16:25:23 +0000]
Reword the having attribute reference
Ben Hutton [Thu, 7 Aug 2014 10:17:42 +0000]
Add extra doc line expanding on the role of the prefetch attribute
Peter Rabbitson [Thu, 7 Aug 2014 03:05:39 +0000]
Ensure the TempExtlib actuall exists
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
Peter Rabbitson [Tue, 5 Aug 2014 12:37:28 +0000]
Tighten the 'txn-op on disconnected handle' checks
Peter Rabbitson [Tue, 5 Aug 2014 12:35:49 +0000]
Simplify some ::Storage::DBI methods (no tempvars)
No functional changes at all
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
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