Peter Rabbitson [Wed, 11 Apr 2012 07:03:08 +0000]
Relax requirement of a config stanza introduced in
7b71391b3
A schema may very well define a configuration internally
Peter Rabbitson [Wed, 11 Apr 2012 05:47:50 +0000]
Fix buggered skip, broken by reorg in
d9bd5195
moltar [Tue, 10 Apr 2012 14:29:45 +0000]
Removed PRIVATE METHODS pod section from Ordered.
Peter Rabbitson [Fri, 3 Feb 2012 09:46:06 +0000]
Allow for tests to run in parallel (simultaneously from multiple checkouts)
This is an interim solution and is by no means the final thing. It simply
was possible to do in a short timeframe and cuts the test run time in half.
If you have DSN envvars set, use at least -s -j8 for best results (the
shuffling un-bunches similar tests, see discussion below)
Two things are at play:
First of all every SQLite database and every temp work directory is created
separately using the pid of the *main* test process (there can be children)
for disambiguation. Extra cleanup passes have been added to ensure t/var
remains clean between runs.
All other DSNs are reduced to their ->sqlt_type form and the result is used
for a global lockfile. Said lockfile is kept in /tmp so that multiple
testruns from multiple directories can be run against the same set of
databases with no conflicts.
Some of the tests are explicitly exempt from any locking and will run
regardless of environment, for example t/storage/dbi_env.t
The lockfiles are deliberately placed in File::Spec->tmpdir. This is done
so that multiple dbic checkouts can run against the same set of DSNs without
stepping on each other's toes.
Some notes on why this is not a great idea, even though it works flawlessly
under continuous test cycling: The problem is that our tests are not yet
ordered in a spwecific way. This means that multiple tests competing for
the same resource will inevitably lock all available test threads forming
several bottlenecks along the path of execution. This issue will be adressed
in a later patch, with the following considerations:
- prove -l t/... must continue to work as is
- test aggregation is something the test suite should try to avoid in
general - after all DBIC is intended to be usable in CGI (yes, pure CGI)
environments, so if the tests are getting heavy to run - this is an
actual problem in need of fixing. Aggregation will instead sweep it under
the rug
- general reorganization of test groups / various path changes should only
be attempted once we have a solid base for multi-db test runs
Peter Rabbitson [Fri, 3 Feb 2012 09:46:06 +0000]
Reorganize CDBICompat tests - centralize prereq checks in one place
Peter Rabbitson [Fri, 3 Feb 2012 09:46:06 +0000]
Fix complete breakage of ddl_filename on certain paths
The careless regex substitution was a poor choice, which became evident when
the db file switched to pid-postfixed names. The result was that tests
upgrading from v1.0 to 2.0 would completely obliterate a path ending with
/2\d0$/
Peter Rabbitson [Fri, 3 Feb 2012 09:46:06 +0000]
Fix incorrect DSN in test (does not affect test condition)
Peter Rabbitson [Mon, 9 Apr 2012 04:58:41 +0000]
Bump Moo deps
Peter Rabbitson [Mon, 9 Apr 2012 02:53:24 +0000]
Enhance
19b088d1 to add SQLT dep regardless of Makefile mode
Rafael Kitover [Sat, 7 Apr 2012 16:14:17 +0000]
add a link to doc on MAS for MSSQL+ODBC
Add a link to
http://www.easysoft.com/developer/languages/perl/multiple-active-statements.html
to the POD for ::DBI::ODBC::Microsoft_SQL_Server in the Multiple Active
Statements section.
Peter Rabbitson [Sat, 7 Apr 2012 10:11:23 +0000]
Better detection/synchronization of MSSQL dynamic cursor state
Peter Rabbitson [Sat, 7 Apr 2012 09:18:46 +0000]
Revert
796acb6a - latest FreeTDS does not support MARs in any form
It looked like this was the case due to a botched test, which would allow
a silent reconnection to take place. What was thought to be a proper MARs
configuration turned out to be simply two connections working in sync
(view patch with diff -w)
Alexander Hartmaier [Tue, 3 Apr 2012 11:17:04 +0000]
added paragraph to update_or_create and find_or_create docs how to know if a row was updated/found or created
Rafael Kitover [Wed, 4 Apr 2012 02:36:08 +0000]
move schema state copy to _copy_state_from
Move the stuff needed to copy the state of a parent schema to another
including making a copy of the class_mappings and source_registrations,
registering sources and copying the storage to the private
_copy_state_from method which clone calls.
Rafael Kitover [Sat, 31 Mar 2012 15:01:22 +0000]
check DBD::ODBC version when disabling array ops
After 1.35 DBD::ODBC will disable array operations for execute_for_fetch
by default, and the $dbh attribute is changing from
'odbc_disable_array_operations' to 'odbc_array_operations', but we still
set the new attribute to 0 just in case.
Put the version checks and the setting of the appropriate attribute in
_disable_odbc_array_ops in ODBC.pm, and call it from the 3 drivers where
we currently need to disable them.
Rafael Kitover [Sun, 18 Mar 2012 06:33:54 +0000]
improvements for MSSQL driver via DBD::ADO
Various improvements and bug fixes:
- Fix transaction support by changing CursorLocation on connection to
adUseClient.
- Support for VARCHAR(MAX)/VARBINARY(MAX)/NVARCHAR(MAX), add a catch
for size => 'max' in _dbi_attrs_for_bind to set the ado_size workaround
to LongReadLen, add a mapping to the data_type for literal
'varchar(max)' entries as well. Tests for these types have been added
as well.
- Set $dbh->{LongReadLen} * 2 + 1 on connection, necessary for some LOB
types.
- Remove trailing null padding from BINARY/VARBINARY/IMAGE data via a
custom Cursor class.
- uniqueidentifier brace removal from data returned from ADO via Cursor
class and re-addition via _dbi_attrs_for_bind and insert_bulk
override for data sent to ADO.
- Add type mappings for some missing MSSQL types and the types from other
databases for cross-deployment.
- Full set of tests, stolen from the MS Access tests, for savepoints,
LOB support and GUIDs.
The trailing null padding and GUID brace removal is in utilities in
::DBI::ADO::CursorUtils which both ::DBI::ADO::MS_Jet (Access) and this
driver use, in their respective Cursor classes and in the drivers
themselves in select_single.
Rafael Kitover [Sun, 18 Mar 2012 06:33:54 +0000]
The cursor class is now autoloaded due to CAG component_class acc. group
Rafael Kitover [Thu, 29 Mar 2012 22:01:11 +0000]
Fix auto-pk for Sybase ASE, broken by refactoring in
fabbd5cc
Was returning arrayref due to missing arrow, tests were passing because
arrayref numifies. Added a test that catches this.
Peter Rabbitson [Mon, 26 Mar 2012 03:11:24 +0000]
Add all database connections via DBICTest::Schema to the leaktrace pool
Rafael Kitover [Sat, 24 Mar 2012 04:07:41 +0000]
Fix thinkos from
bfec318f and 3edfebff
Rafael Kitover [Sat, 24 Mar 2012 04:07:41 +0000]
Disable ODBC batch ops for Access, they are broken
Brendan Byrd [Fri, 23 Mar 2012 15:09:04 +0000]
Some minor POD corrections
Apply very small doc correction to search_related
Fix incorrect last_modified / update comparison in ::Row/update
Add more direct documentation of grandparent methods in DBIC::Core
Rafael Kitover [Fri, 23 Mar 2012 13:04:53 +0000]
support FreeTDS 0.91 with Sybase ASE + DBD::Sybase
Requires disabling statement caching.
Rafael Kitover [Fri, 23 Mar 2012 18:27:10 +0000]
disable batch ops for firebird ODBC driver
Rafael Kitover [Fri, 23 Mar 2012 17:37:27 +0000]
make carp_once register messages not just callsite
Add a test as well in t/106dbic_carp.t .
Rafael Kitover [Thu, 22 Mar 2012 11:41:47 +0000]
Appease DBD::Sybase compiled with new freetds
Rafael Kitover [Thu, 22 Mar 2012 11:41:47 +0000]
As shitty as freetds is, it seems they at least got MARS right
Peter Rabbitson [Fri, 23 Mar 2012 09:38:18 +0000]
Centralize (and privatize) handling of freetds driver/version detection
Peter Rabbitson [Tue, 20 Mar 2012 05:49:33 +0000]
Multiple cleanups to accommodate broken FreeTDS driver
- Disable batch operations entirely (can get as bad as silent insert failures)
- Disable SELECT SCOPE_IDENTITY generation when used with dynamic cursors
- Clean some warnings while we're at it
Peter Rabbitson [Thu, 22 Mar 2012 07:44:33 +0000]
Fix pessimization of offset-less Oracle limits, introduced in
6a6394f1
When there is only one RowNum operator, stability of the order is not relevant
Peter Rabbitson [Thu, 22 Mar 2012 08:48:33 +0000]
Require bugfixed Module::Install
Peter Rabbitson [Thu, 22 Mar 2012 08:42:24 +0000]
Remove all "magic number" DBI get_info calls from the codebase
Peter Rabbitson [Thu, 22 Mar 2012 08:06:04 +0000]
Replace all use of wantarray tri-calls with explicit return or preserve_context
Wes Malone [Tue, 29 Mar 2011 23:46:02 +0000]
Passing test for mssql odbc bulk insert bug fixed by
fabbd5cca9
Rafael Kitover [Wed, 18 May 2011 09:45:47 +0000]
Factor out IDENTITY_INSERT for Sybase ASE and MSSQL into a component
This not only greatly simplifies the code of multiple storages, but the
reduction of identity retrieval calls fixes multiple issues with some
odd driver combinations.
Peter Rabbitson [Tue, 20 Mar 2012 03:14:53 +0000]
Run the sybase C subtest *after* the main test
Peter Rabbitson [Tue, 20 Mar 2012 03:12:06 +0000]
Remove todoified tests reflecting a conceptual brainfart
Peter Rabbitson [Sun, 18 Mar 2012 19:29:46 +0000]
Make sure do_query retries on potentially disconnected $dbh
Peter Rabbitson [Mon, 30 Jan 2012 11:08:54 +0000]
Move Oracle blob tests into separate file (no functional changes!)
Rafael Kitover [Sat, 17 Mar 2012 00:24:36 +0000]
remove some Win32 workarounds in tests from cygwin
Cygwin can delete open files, so change some workarounds we had in tests
for closing open files before deleting them that were for both MSWin32
and cygwin to be for MSWin32 only.
Peter Rabbitson [Sat, 17 Mar 2012 10:28:11 +0000]
base.pm now repeatedly require()s modules, exposing missing Exporter exemption
Peter Rabbitson [Wed, 14 Mar 2012 12:40:44 +0000]
Add all storage instances to the test suite leaktracing pool
Peter Rabbitson [Wed, 14 Mar 2012 12:40:44 +0000]
Fix leak of oracle storage objects in its _dbh_execute override
Replace with a much cleaner (and leak free) blockrunner instance
Peter Rabbitson [Wed, 14 Mar 2012 12:40:44 +0000]
Fix the pure-perl in_global_destruction() emulation under threads
Also it seems that threads just don't work too well on < 5.8.5, ajust
the skip message to reflect this.
Peter Rabbitson [Wed, 14 Mar 2012 12:40:44 +0000]
Make sure we load threads.pm before Test::More
Alexander Hartmaier [Fri, 16 Mar 2012 12:08:14 +0000]
removed unnecessary use of Test::Exception
ack -l Test::Exception t/ | xargs egrep -L 'lives_ok|dies_ok|throws_ok|lives_and'
Peter Rabbitson [Tue, 29 Nov 2011 06:31:21 +0000]
Adjust tests to work correctly with the upcoming Test::Builder 1.005
Also deduplicate code in the persistence runners of t/52leaks.t
Rafael Kitover [Tue, 13 Mar 2012 17:57:27 +0000]
fix Win32 file use error in t/storage/reconnect.t
Even though the fake SQLite db file is chmod 0000, for some reason
SQLite still opens it on Win32 and holds it open; this prevents deleting
it and replacing it with the original db file so that the rest of the
tests can run.
TODO: followup with the DBD::SQLite folks.
Disconnect the $dbh on Win32 so the unlink can succeed, and remove the
following SKIP: block (for if db is "encrypted") which is no longer
necessary.
Rafael Kitover [Mon, 12 Mar 2012 21:00:04 +0000]
Update t/751msaccess.t broken by leak checker
65d35121
Can't have the cleanup sub close over $schema.
Rafael Kitover [Sun, 11 Mar 2012 20:56:53 +0000]
add SQLT dep if DBICTEST_SQLT_DEPLOY env is set
Add some code to Makefile.PL to check for $ENV{DBICTEST_SQLT_DEPLOY},
which if set requires SQL::Translator to be available or the tests
will fail. Add the dep as a test_requires directly, so that it is
scrubbed out of the META.yml in author mode due to not being in the
$test_requires hash.
Eden Cardim [Tue, 28 Feb 2012 12:23:57 +0000]
making config flags actually recognize config files
Peter Rabbitson [Mon, 12 Mar 2012 06:48:29 +0000]
Fix t/inflate/datetime.t warning on older perls
Peter Rabbitson [Mon, 12 Mar 2012 06:47:10 +0000]
Fix failures with DBICTEST_SQLITE_USE_FILE=1 introduced by
50261284
Peter Rabbitson [Tue, 14 Feb 2012 22:05:04 +0000]
Test suite wide leaktesting
Peter Rabbitson [Fri, 9 Dec 2011 16:35:53 +0000]
Rewrite txn_do and dbh_do to use a (hidden for now) blockrunner
Peter Rabbitson [Tue, 14 Feb 2012 22:05:04 +0000]
Fix more $schema leaks in the SQLT DBIC Parser (AUGHHHHH!!!!)
Peter Rabbitson [Tue, 14 Feb 2012 22:05:04 +0000]
Add a TODO test for a very elaborate stack leak scenario
Peter Rabbitson [Fri, 9 Mar 2012 03:40:28 +0000]
Fix fallout from
a807d012 (folks please run your podtests when hacking POD)
- Stray =end in DBIC/DB.pm
- Inadvertently hidden documentation of txn_scope_guard
(the =for comment never applied to the POD-block previously)
Jess Robinson [Wed, 7 Mar 2012 17:10:18 +0000]
Minor messing with syntactically incorrect POD (no =headX blocks inside =begin, and =for is a one-paragraph block)
Peter Rabbitson [Sat, 25 Feb 2012 14:36:43 +0000]
Simplify code of GenericSubQ limit dialect
Peter Rabbitson [Sat, 25 Feb 2012 14:36:43 +0000]
Some cleanups and code dedup of Top and FetchFirst limit dialects
Relax requirement of having a primary key declared on table
Peter Rabbitson [Sat, 25 Feb 2012 14:36:43 +0000]
Simplify RowNumber Over limit dialect implementation
Peter Rabbitson [Sat, 25 Feb 2012 14:36:43 +0000]
Deduplicate code in rownum limit emulation
Use the RSRC unique constraint traversal to determine if an order_by is stable
Peter Rabbitson [Sat, 25 Feb 2012 14:36:43 +0000]
Deduplicate code in RSC, use the RSRC unique constraint traversal instead
Peter Rabbitson [Sat, 25 Feb 2012 14:36:43 +0000]
Add an internal unique colset finder and relax complex $rs update/delete code
As long as there is something to correlate the subquery by we are good
Peter Rabbitson [Fri, 2 Mar 2012 10:41:42 +0000]
Remove the "row-by-row shift" Ordered.pm pessimization
The idea this is necessary was born when working with buggy old 1.1x
SQLite versions back in 2008. This no longer seems to be necessary,
but if I am wrong we can always bring it back with an actual
storage capability flag
Peter Rabbitson [Tue, 14 Feb 2012 22:05:04 +0000]
Fix embarrassing leak triggered on calling new_related on an uninserted object
Reason is a typo-ed hash element in a weaken() call back in
68f3b0dd. Add a
bunch of extra tests to catch this, and also better validate the new_related
behavior.
Peter Rabbitson [Fri, 17 Feb 2012 11:54:09 +0000]
Fix rogue child disconnecting a parent $dbh - no idea how I even missed that
Peter Rabbitson [Mon, 31 May 2010 22:26:39 +0000]
Majorly cleanup $rs->update/delete (no $rs-aware code should be in ::Storages)
Peter Rabbitson [Sat, 10 Dec 2011 23:51:12 +0000]
Overhaul of variable \[] handling in populate, and a lot of extra tests
Now things like multi-value \[ ' ? || ?', [...], [...] ] and populate
datasets where the values of the \[] change per row work correctly
Peter Rabbitson [Sat, 10 Dec 2011 23:44:37 +0000]
Switch from using execute_array to execute_for_fetch directly
This saves us from pivoting our data into column slices, which execute_array
promptly turns back into our initial row-based format to feed to
execute_for_fetch. Apart from the obvious speed gain, this saves a lot of
memory since it avoids 2 copies of the (possibly rather large) dataset
Peter Rabbitson [Sun, 11 Dec 2011 20:15:05 +0000]
Fix ASE bulk_insert for bind changes in
0e773352
When using the bulk API, update the binds to the structure expected by
_execute_array. Also temporarily disable $sth->finish in the bulk API
codepath because for some reason it rolls everything back. Modify the
test to always exercise both codepaths from now on.
Peter Rabbitson [Sat, 10 Dec 2011 22:50:36 +0000]
Factor out bindattr resolver and tighten code a bit
Zero functional changes
Peter Rabbitson [Fri, 3 Feb 2012 08:31:27 +0000]
Allow users to disable the "DT in search" warning introduced in
e1038213
Peter Rabbitson [Sat, 4 Feb 2012 21:27:51 +0000]
Shuffle things around, maint/ is now a proper toolchain tooldir
Peter Rabbitson [Sat, 4 Feb 2012 16:19:27 +0000]
Normalize -'s and _'s in maint names and Makefile options
Caleb Cushing [Thu, 2 Feb 2012 21:25:44 +0000]
remove stale link and doc readonly pool queries
transactions cause an implicit force to master, this documents how you can
override this to force to pool
Signed-off-by: Caleb Cushing <xenoterracide@gmail.com>
Caleb Cushing [Thu, 2 Feb 2012 20:50:43 +0000]
add a link to SQL::Abstract for WHERE clauses
Signed-off-by: Caleb Cushing <xenoterracide@gmail.com>
Peter Rabbitson [Mon, 30 Jan 2012 10:33:12 +0000]
Fix forgotten whitespace - this is what I get for no prove xt
Peter Rabbitson [Mon, 30 Jan 2012 08:45:55 +0000]
Only invoke the author Makefile.PL includes if we are not part of a `make` run
Matt Phillips [Mon, 30 Jan 2012 02:17:52 +0000]
Comment typo
Peter Rabbitson [Sun, 29 Jan 2012 12:37:08 +0000]
Forgotten diag and some clarifications of
fc4b0448
Peter Rabbitson [Tue, 24 Jan 2012 11:47:44 +0000]
Factor out the Makefile.PL into easily digestable snippets
Also add explicit guard for attempts to `make dist` from within non-author mode.
The rationale is to disallow dist building on machines that do not have the optdeps
installed (this still does not giarantee `make test` will run, but is at least a
nudge in the right direction)
Peter Rabbitson [Thu, 26 Jan 2012 11:11:15 +0000]
Assert that complex bindtytyping passage works for the search() bind attribute
Graham Knop [Tue, 17 Jan 2012 17:18:43 +0000]
use more correct subsection links in POD
Graham Knop [Tue, 17 Jan 2012 17:25:49 +0000]
remove ::Storage::DBI::sth from POD as it should never have been public
Graham Knop [Tue, 17 Jan 2012 17:22:00 +0000]
fix PrettyPrint package link in POD
Graham Knop [Tue, 17 Jan 2012 17:20:34 +0000]
correct organization for SQLite POD
Rafael Kitover [Wed, 18 Jan 2012 14:56:18 +0000]
issue warning for DateTimes passed to ->search
Issue a carp_unique when DateTime objects are detected in binds in
::Storage::DBI with a pointer to the Cookbook recipe for formatting
DateTime objects for queries.
Add a test for the warning in t/inflate/datetime.t, which already has
TODO tests for DTs in ->search.
Rafael Kitover [Tue, 10 Jan 2012 21:56:03 +0000]
add POD on how to use Moose in custom ResultSets
Thanks to mst for providing the relevant info.
Peter Rabbitson [Thu, 5 Jan 2012 02:59:41 +0000]
Trailing WS crusade - got to save them bits
Jess Robinson [Fri, 9 Dec 2011 17:00:45 +0000]
Add link to SQLHackers documentation
Brad Davis [Wed, 4 Jan 2012 04:52:02 +0000]
- Fix typo (s/get_colum/get_column).
Alexander Hartmaier [Tue, 3 Jan 2012 12:00:47 +0000]
use Path::Class for finding subdirs of t and don't use global filehandle for slurping
Alexander Hartmaier [Wed, 14 Dec 2011 10:15:44 +0000]
refactored HashRefInflators internals
Peter Rabbitson [Mon, 19 Dec 2011 05:55:18 +0000]
Rewrite the HRI bench to produce consistent numbers with less handholding
- Now we auto-pull from git what we want to benchmark (by default last
2 commits + uncommitted changes if any)
- Run a very tight benchmarking loop, without requerying SQLite or have
any other unrelated distractions
- use DumbBench (much saner implementation and results, though slower)
Rafael Kitover [Thu, 1 Dec 2011 17:29:51 +0000]
Add live Firebird test for paging fix
8b31f62e
Peter Rabbitson [Thu, 1 Dec 2011 16:50:57 +0000]
Fix and test first_skip/skip_first limit dialects
Codebase didn't take in account the fact that limit bindvals for
SELECT FIRST x SKIP y and SELECT FIRST x SKIP y need to be inserted
at the head of the bind-assembly chain. Hence introducing a new
bind-chunk position 'pre_select'. While at it move the TOP dialect
to use it as well.
Extensive tests for both dialects, and also augment the test for
the Oracle RowNum dialect (no fixes necessary)
Peter Rabbitson [Tue, 29 Nov 2011 06:00:23 +0000]
Standardize hobbs' email address
Andrew Rodland [Tue, 29 Nov 2011 05:34:15 +0000]
Release 0.08196