12 years agoI think we are done here
Peter Rabbitson [Sat, 25 Feb 2012 14:36:43 +0000]
I think we are done here

12 years agoMove scary stuff to its own class
Peter Rabbitson [Fri, 24 Feb 2012 01:22:10 +0000]
Move scary stuff to its own class

12 years agoInitial full test pass - all fetches are eager for now
Peter Rabbitson [Mon, 20 Feb 2012 04:14:03 +0000]
Initial full test pass - all fetches are eager for now

12 years agoMerge branch 'master' into topic/constructor_rewrite
Peter Rabbitson [Mon, 16 Apr 2012 01:01:03 +0000]
Merge branch 'master' into topic/constructor_rewrite

12 years agoAdd torture of limiting subselect with non-root table selection renamer
Peter Rabbitson [Sun, 15 Apr 2012 10:29:09 +0000]
Add torture of limiting subselect with non-root table selection renamer

12 years agome.minyear is not a valid alias, minyear is
Matt S Trout [Sat, 14 Apr 2012 17:11:34 +0000]
me.minyear is not a valid alias, minyear is

12 years agoEntire test suite now executable under tainted perl (prove -lT)
Peter Rabbitson [Sat, 14 Apr 2012 13:00:57 +0000]
Entire test suite now executable under tainted perl (prove -lT)

12 years agoMerge massive rework of limit dialects
Peter Rabbitson [Sat, 14 Apr 2012 12:09:59 +0000]
Merge massive rework of limit dialects

12 years agoDocument software_limit and properly throw on related as_query calls
Peter Rabbitson [Sat, 14 Apr 2012 12:03:20 +0000]
Document software_limit and properly throw on related as_query calls

12 years agoExtra tests for all the improvements
Peter Rabbitson [Thu, 29 Mar 2012 02:53:28 +0000]
Extra tests for all the improvements

12 years agoTake into account resultset conditions when determining rs order stability
Peter Rabbitson [Sat, 14 Apr 2012 08:45:32 +0000]
Take into account resultset conditions when determining rs order stability

This takes care of the overly-aggressive exception scenario introduced by
86bb5a27

12 years agoFix RowCountOrGenericSubQ dropping group/having/order on the floor (RT#73244)
Peter Rabbitson [Thu, 29 Mar 2012 02:53:28 +0000]
Fix RowCountOrGenericSubQ dropping group/having/order on the floor (RT#73244)

12 years agoWhen realiasing carry all 'renames' in longest first order
Peter Rabbitson [Thu, 29 Mar 2012 02:53:28 +0000]
When realiasing carry all 'renames' in longest first order

12 years agoAnything that isn't in the selector list needs a realias
Peter Rabbitson [Thu, 29 Mar 2012 02:53:28 +0000]
Anything that isn't in the selector list needs a realias

12 years agoAlways reselect a bind-containing order by even if appearing in the select list
Peter Rabbitson [Thu, 29 Mar 2012 02:53:28 +0000]
Always reselect a bind-containing order by even if appearing in the select list

12 years agoDo not alias plain column names to the inflator spec, do it only for funcs
Peter Rabbitson [Thu, 29 Mar 2012 02:53:28 +0000]
Do not alias plain column names to the inflator spec, do it only for funcs

This solves a problem with deliberate column renames in complex subqueries

12 years agoFix bind order in RNO limits when there are both select and order bindvals
Peter Rabbitson [Thu, 29 Mar 2012 02:53:28 +0000]
Fix bind order in RNO limits when there are both select and order bindvals

12 years agoSanify handling of genericsubquery order determination, and order binds
Peter Rabbitson [Thu, 29 Mar 2012 02:53:28 +0000]
Sanify handling of genericsubquery order determination, and order binds

12 years agoSimplify 3-query skimming limits to omit the last redundant limit
Peter Rabbitson [Thu, 29 Mar 2012 02:53:28 +0000]
Simplify 3-query skimming limits to omit the last redundant limit

12 years agoSimplify skimming limits - simpler query when no offset is given
Peter Rabbitson [Thu, 29 Mar 2012 02:53:28 +0000]
Simplify skimming limits - simpler query when no offset is given

12 years agoRefactor a lot of the limit dialects common code - (hopefully) no changes
Peter Rabbitson [Thu, 29 Mar 2012 02:53:28 +0000]
Refactor a lot of the limit dialects common code - (hopefully) no changes

12 years agofixed current_source_alias example code
Alexander Hartmaier [Thu, 12 Apr 2012 14:30:30 +0000]
fixed current_source_alias example code

12 years agoFix broken tests that would fail in future SQL::Abstract
Peter Rabbitson [Wed, 11 Apr 2012 07:29:43 +0000]
Fix broken tests that would fail in future SQL::Abstract

12 years agoCheck more files for notabs/eol
Peter Rabbitson [Wed, 11 Apr 2012 07:24:01 +0000]
Check more files for notabs/eol

12 years agoNo longer depend on MI::AuthorTests. Switch xt tests to run on make dist
Peter Rabbitson [Wed, 11 Apr 2012 07:13:01 +0000]
No longer depend on MI::AuthorTests. Switch xt tests to run on make dist

12 years agoRelax requirement of a config stanza introduced in 7b71391b3
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

12 years agoFix buggered skip, broken by reorg in d9bd5195
Peter Rabbitson [Wed, 11 Apr 2012 05:47:50 +0000]
Fix buggered skip, broken by reorg in d9bd5195

12 years agoRemoved PRIVATE METHODS pod section from Ordered.
moltar [Tue, 10 Apr 2012 14:29:45 +0000]
Removed PRIVATE METHODS pod section from Ordered.

12 years agoAllow for tests to run in parallel (simultaneously from multiple checkouts)
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

12 years agoReorganize CDBICompat tests - centralize prereq checks in one place
Peter Rabbitson [Fri, 3 Feb 2012 09:46:06 +0000]
Reorganize CDBICompat tests - centralize prereq checks in one place

12 years agoFix complete breakage of ddl_filename on certain paths
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$/

12 years agoFix incorrect DSN in test (does not affect test condition)
Peter Rabbitson [Fri, 3 Feb 2012 09:46:06 +0000]
Fix incorrect DSN in test (does not affect test condition)

12 years agoBump Moo deps
Peter Rabbitson [Mon, 9 Apr 2012 04:58:41 +0000]
Bump Moo deps

12 years agoEnhance 19b088d1 to add SQLT dep regardless of Makefile mode
Peter Rabbitson [Mon, 9 Apr 2012 02:53:24 +0000]
Enhance 19b088d1 to add SQLT dep regardless of Makefile mode

12 years agoadd a link to doc on MAS for MSSQL+ODBC
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.

12 years agoBetter detection/synchronization of MSSQL dynamic cursor state
Peter Rabbitson [Sat, 7 Apr 2012 10:11:23 +0000]
Better detection/synchronization of MSSQL dynamic cursor state

12 years agoRevert 796acb6a - latest FreeTDS does not support MARs in any form
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)

12 years agoadded paragraph to update_or_create and find_or_create docs how to know if a row...
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

12 years agomove schema state copy to _copy_state_from
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.

12 years agocheck DBD::ODBC version when disabling array ops
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.

12 years agoimprovements for MSSQL driver via DBD::ADO
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.

12 years agoThe cursor class is now autoloaded due to CAG component_class acc. group
Rafael Kitover [Sun, 18 Mar 2012 06:33:54 +0000]
The cursor class is now autoloaded due to CAG component_class acc. group

12 years agoFix auto-pk for Sybase ASE, broken by refactoring in fabbd5cc
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.

12 years agoAdd all database connections via DBICTest::Schema to the leaktrace pool
Peter Rabbitson [Mon, 26 Mar 2012 03:11:24 +0000]
Add all database connections via DBICTest::Schema to the leaktrace pool

12 years agoFix thinkos from bfec318f and 3edfebff
Rafael Kitover [Sat, 24 Mar 2012 04:07:41 +0000]
Fix thinkos from bfec318f and 3edfebff

12 years agoDisable ODBC batch ops for Access, they are broken
Rafael Kitover [Sat, 24 Mar 2012 04:07:41 +0000]
Disable ODBC batch ops for Access, they are broken

12 years agoSome minor POD corrections
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

12 years agosupport FreeTDS 0.91 with Sybase ASE + DBD::Sybase
Rafael Kitover [Fri, 23 Mar 2012 13:04:53 +0000]
support FreeTDS 0.91 with Sybase ASE + DBD::Sybase

Requires disabling statement caching.

12 years agodisable batch ops for firebird ODBC driver
Rafael Kitover [Fri, 23 Mar 2012 18:27:10 +0000]
disable batch ops for firebird ODBC driver

12 years agomake carp_once register messages not just callsite
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 .

12 years agoAppease DBD::Sybase compiled with new freetds
Rafael Kitover [Thu, 22 Mar 2012 11:41:47 +0000]
Appease DBD::Sybase compiled with new freetds

12 years agoAs shitty as freetds is, it seems they at least got MARS right
Rafael Kitover [Thu, 22 Mar 2012 11:41:47 +0000]
As shitty as freetds is, it seems they at least got MARS right

12 years agoCentralize (and privatize) handling of freetds driver/version detection
Peter Rabbitson [Fri, 23 Mar 2012 09:38:18 +0000]
Centralize (and privatize) handling of freetds driver/version detection

12 years agoMultiple cleanups to accommodate broken FreeTDS driver
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

12 years agoFix pessimization of offset-less Oracle limits, introduced in 6a6394f1
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

12 years agoRequire bugfixed Module::Install
Peter Rabbitson [Thu, 22 Mar 2012 08:48:33 +0000]
Require bugfixed Module::Install

12 years agoRemove all "magic number" DBI get_info calls from the codebase
Peter Rabbitson [Thu, 22 Mar 2012 08:42:24 +0000]
Remove all "magic number" DBI get_info calls from the codebase

12 years agoReplace all use of wantarray tri-calls with explicit return or preserve_context
Peter Rabbitson [Thu, 22 Mar 2012 08:06:04 +0000]
Replace all use of wantarray tri-calls with explicit return or preserve_context

12 years agoPassing test for mssql odbc bulk insert bug fixed by fabbd5cca9
Wes Malone [Tue, 29 Mar 2011 23:46:02 +0000]
Passing test for mssql odbc bulk insert bug fixed by fabbd5cca9

12 years agoFactor out IDENTITY_INSERT for Sybase ASE and MSSQL into a component
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.

12 years agoRun the sybase C subtest *after* the main test
Peter Rabbitson [Tue, 20 Mar 2012 03:14:53 +0000]
Run the sybase C subtest *after* the main test

12 years agoRemove todoified tests reflecting a conceptual brainfart
Peter Rabbitson [Tue, 20 Mar 2012 03:12:06 +0000]
Remove todoified tests reflecting a conceptual brainfart

12 years agoMake sure do_query retries on potentially disconnected $dbh
Peter Rabbitson [Sun, 18 Mar 2012 19:29:46 +0000]
Make sure do_query retries on potentially disconnected $dbh

12 years agoMove Oracle blob tests into separate file (no functional changes!)
Peter Rabbitson [Mon, 30 Jan 2012 11:08:54 +0000]
Move Oracle blob tests into separate file (no functional changes!)

12 years agoremove some Win32 workarounds in tests from cygwin
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.

12 years agobase.pm now repeatedly require()s modules, exposing missing Exporter exemption
Peter Rabbitson [Sat, 17 Mar 2012 10:28:11 +0000]
base.pm now repeatedly require()s modules, exposing missing Exporter exemption

12 years agoAdd all storage instances to the test suite leaktracing pool
Peter Rabbitson [Wed, 14 Mar 2012 12:40:44 +0000]
Add all storage instances to the test suite leaktracing pool

12 years agoFix leak of oracle storage objects in its _dbh_execute override
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

12 years agoFix the pure-perl in_global_destruction() emulation under threads
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.

12 years agoMake sure we load threads.pm before Test::More
Peter Rabbitson [Wed, 14 Mar 2012 12:40:44 +0000]
Make sure we load threads.pm before Test::More

12 years agoremoved unnecessary use of Test::Exception
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'

12 years agoAdjust tests to work correctly with the upcoming Test::Builder 1.005
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

12 years agofix Win32 file use error in t/storage/reconnect.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.

12 years agoUpdate t/751msaccess.t broken by leak checker 65d35121
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.

12 years agoadd SQLT dep if DBICTEST_SQLT_DEPLOY env is set
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.

12 years agomaking config flags actually recognize config files
Eden Cardim [Tue, 28 Feb 2012 12:23:57 +0000]
making config flags actually recognize config files

12 years agoFix t/inflate/datetime.t warning on older perls
Peter Rabbitson [Mon, 12 Mar 2012 06:48:29 +0000]
Fix t/inflate/datetime.t warning on older perls

12 years agoFix failures with DBICTEST_SQLITE_USE_FILE=1 introduced by 50261284
Peter Rabbitson [Mon, 12 Mar 2012 06:47:10 +0000]
Fix failures with DBICTEST_SQLITE_USE_FILE=1 introduced by 50261284

12 years agoTest suite wide leaktesting
Peter Rabbitson [Tue, 14 Feb 2012 22:05:04 +0000]
Test suite wide leaktesting

12 years agoRewrite txn_do and dbh_do to use a (hidden for now) blockrunner
Peter Rabbitson [Fri, 9 Dec 2011 16:35:53 +0000]
Rewrite txn_do and dbh_do to use a (hidden for now) blockrunner

12 years agoFix more $schema leaks in the SQLT DBIC Parser (AUGHHHHH!!!!)
Peter Rabbitson [Tue, 14 Feb 2012 22:05:04 +0000]
Fix more $schema leaks in the SQLT DBIC Parser (AUGHHHHH!!!!)

12 years agoAdd a TODO test for a very elaborate stack leak scenario
Peter Rabbitson [Tue, 14 Feb 2012 22:05:04 +0000]
Add a TODO test for a very elaborate stack leak scenario

12 years agoFix fallout from a807d012 (folks please run your podtests when hacking POD)
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)

12 years agoMinor messing with syntactically incorrect POD (no =headX blocks inside =begin, and...
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)

12 years agoSimplify code of GenericSubQ limit dialect
Peter Rabbitson [Sat, 25 Feb 2012 14:36:43 +0000]
Simplify code of GenericSubQ limit dialect

12 years agoSome cleanups and code dedup of Top and FetchFirst limit dialects
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

12 years agoimplemented _collapse_result and _merge_result
Moritz Onken [Wed, 12 Jan 2011 16:56:48 +0000]
implemented _collapse_result and _merge_result

fixed inflate_result and some calling arguments

12 years agoFunctional row-parse generator - really works!!!
Peter Rabbitson [Wed, 4 Aug 2010 12:06:43 +0000]
Functional row-parse generator - really works!!!

12 years agoSimplify RowNumber Over limit dialect implementation
Peter Rabbitson [Sat, 25 Feb 2012 14:36:43 +0000]
Simplify RowNumber Over limit dialect implementation

12 years agoDeduplicate code in rownum limit emulation
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

12 years agoDeduplicate code in RSC, use the RSRC unique constraint traversal instead
Peter Rabbitson [Sat, 25 Feb 2012 14:36:43 +0000]
Deduplicate code in RSC, use the RSRC unique constraint traversal instead

12 years agoAdd an internal unique colset finder and relax complex $rs update/delete code
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

12 years agoRemove the "row-by-row shift" Ordered.pm pessimization
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

12 years agoFix embarrassing leak triggered on calling new_related on an uninserted object
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.

12 years agoFix rogue child disconnecting a parent $dbh - no idea how I even missed that
Peter Rabbitson [Fri, 17 Feb 2012 11:54:09 +0000]
Fix rogue child disconnecting a parent $dbh - no idea how I even missed that

12 years agoMajorly cleanup $rs->update/delete (no $rs-aware code should be in ::Storages)
Peter Rabbitson [Mon, 31 May 2010 22:26:39 +0000]
Majorly cleanup $rs->update/delete (no $rs-aware code should be in ::Storages)

12 years agoOverhaul of variable \[] handling in populate, and a lot of extra tests
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

12 years agoSwitch from using execute_array to execute_for_fetch directly
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

12 years agoFix ASE bulk_insert for bind changes in 0e773352
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.

12 years agoFactor out bindattr resolver and tighten code a bit
Peter Rabbitson [Sat, 10 Dec 2011 22:50:36 +0000]
Factor out bindattr resolver and tighten code a bit

Zero functional changes