13 years agofix spurious PAUSE message
Arthur Axel 'fREW' Schmidt [Thu, 14 Jul 2011 17:33:11 +0000]
fix spurious PAUSE message

13 years agoRelease 0.08193 v0.08193
Alexander Hartmaier [Thu, 14 Jul 2011 17:02:30 +0000]
Release 0.08193

13 years agoreplaced Test::Deep::NoTest with Data::Compare to not break Test::Deep tests
Alexander Hartmaier [Thu, 14 Jul 2011 13:54:54 +0000]
replaced Test::Deep::NoTest with Data::Compare to not break Test::Deep tests

13 years agoStop leaking cursors on oracle sequence retrieval
Peter Rabbitson [Wed, 13 Jul 2011 07:58:49 +0000]
Stop leaking cursors on oracle sequence retrieval

13 years agoSQLMaker is a proper C3-enabled class, do not use SUPER::
Peter Rabbitson [Thu, 23 Jun 2011 09:04:58 +0000]
SQLMaker is a proper C3-enabled class, do not use SUPER::

13 years agofixed failing test when DBIC_TRACE_PROFILE is set
Alexander Hartmaier [Wed, 6 Jul 2011 16:18:07 +0000]
fixed failing test when DBIC_TRACE_PROFILE is set

13 years agocheck database driver dependencies for tests
Rafael Kitover [Sun, 3 Jul 2011 17:03:19 +0000]
check database driver dependencies for tests

13 years agoOpen the logfile in append mode
Peter Rabbitson [Fri, 17 Jun 2011 01:49:37 +0000]
Open the logfile in append mode

13 years agoFix t/55namespaces_cleaned (RT#68814)
Peter Rabbitson [Fri, 17 Jun 2011 00:28:22 +0000]
Fix t/55namespaces_cleaned (RT#68814)

13 years agoHow ::Rekey was tested against the DBIC test suite
Peter Rabbitson [Thu, 16 Jun 2011 08:27:59 +0000]
How ::Rekey was tested against the DBIC test suite

13 years agoYet another SQL munging atrocity (shadow needs it)
Peter Rabbitson [Thu, 16 Jun 2011 08:26:59 +0000]
Yet another SQL munging atrocity (shadow needs it)

13 years agoFix all invocations of _resolve_condition to match the new signature
Peter Rabbitson [Thu, 16 Jun 2011 08:22:27 +0000]
Fix all invocations of _resolve_condition to match the new signature

13 years agoDo not consider non-sequence oracle triggers during seq detection
Peter Rabbitson [Wed, 15 Jun 2011 07:21:59 +0000]
Do not consider non-sequence oracle triggers during seq detection

13 years agofix bigint handling in sqlite
Arthur Axel 'fREW' Schmidt [Sun, 12 Jun 2011 03:07:58 +0000]
fix bigint handling in sqlite

13 years agoCorrect test-relationship name/type
Peter Rabbitson [Fri, 10 Jun 2011 22:41:46 +0000]
Correct test-relationship name/type

13 years agoMore robust insert() logic to avoid undef warnings
Peter Rabbitson [Thu, 9 Jun 2011 09:32:43 +0000]
More robust insert() logic to avoid undef warnings

13 years agoMake Ordered play nice with other things hooking update()
Peter Rabbitson [Wed, 8 Jun 2011 11:34:02 +0000]
Make Ordered play nice with other things hooking update()

13 years agoexplicit int cast, prevents the result rounding up to 1000 (4 digits)
David Schmidt [Fri, 17 Jun 2011 14:19:26 +0000]
explicit int cast, prevents the result rounding up to 1000 (4 digits)

13 years agodon't mask missing deps with datetime_undef_if_invalid
Rafael Kitover [Sat, 11 Jun 2011 16:50:50 +0000]
don't mask missing deps with datetime_undef_if_invalid

13 years agoFixed a typo in the POD
moltar [Wed, 8 Jun 2011 17:04:19 +0000]
Fixed a typo in the POD

13 years agodon't add Sys::SigAction to author deps on Win32
Rafael Kitover [Wed, 8 Jun 2011 15:04:24 +0000]
don't add Sys::SigAction to author deps on Win32

13 years agoMake Access inner joins 'INNER JOIN' to avoid JOIN syntax errors
Rafael Kitover [Wed, 8 Jun 2011 12:38:20 +0000]
Make Access inner joins 'INNER JOIN' to avoid JOIN syntax errors

13 years agofixed order of rows difference between first and subsequent pages for Oracle
Alexander Hartmaier [Mon, 6 Jun 2011 15:10:52 +0000]
fixed order of rows difference between first and subsequent pages for Oracle

13 years agoFix stupid oversight in update_all
Peter Rabbitson [Tue, 7 Jun 2011 08:04:13 +0000]
Fix stupid oversight in update_all

13 years agoAugment shorsighted code change in 5ef76b8b
Peter Rabbitson [Tue, 7 Jun 2011 07:58:05 +0000]
Augment shorsighted code change in 5ef76b8b

The way _column_data_in_storage was unconditionally referenced, would
break both id() and ident_values(), which are supposed to construct
the identity based on current object state

13 years agoThe test is designed to work with blob-updates only, remove plain values
Rafael Kitover [Wed, 25 May 2011 22:01:20 +0000]
The test is designed to work with blob-updates only, remove plain values

13 years agoRewrite handling of "storage-side old values" both for PK/ident and for
Peter Rabbitson [Sun, 5 Jun 2011 05:29:42 +0000]
Rewrite handling of "storage-side old values" both for PK/ident and for
Ordered position/grouping

Massive code simplification, also opens the door to vastly simplifying
(and optimizing) DBIx::Class::Helper::Row::StorageValues, as only
differing values are kept by the core

13 years agoMinor cleanup of ResultSource attributes
Peter Rabbitson [Sat, 4 Jun 2011 21:57:47 +0000]
Minor cleanup of ResultSource attributes

13 years agofix doubling of find_related condition
Peter Rabbitson [Fri, 3 Jun 2011 17:00:51 +0000]
fix doubling of find_related condition

13 years agoFix newlines in skip messages
Rafael Kitover [Fri, 3 Jun 2011 17:00:51 +0000]
Fix newlines in skip messages

13 years agoExtra cleanup of leftovers from 70171cd7
Peter Rabbitson [Sat, 4 Jun 2011 07:39:59 +0000]
Extra cleanup of leftovers from 70171cd7

Also some commentary

13 years agoAdded tests for chained sqlt_deploy_hook()'s
Pedro Melo [Tue, 24 May 2011 14:52:33 +0000]
Added tests for chained sqlt_deploy_hook()'s

We need to declare the sqlt_deploy_hook sub's in the code to make sure the
next::method knows they exist.

Signed-off-by: Pedro Melo <melo@simplicidade.org>

13 years agoRevert "Fix incorrect default sqlt_deploy_hook signature" (fed15b916)
Pedro Melo [Tue, 24 May 2011 14:18:34 +0000]
Revert "Fix incorrect default sqlt_deploy_hook signature" (fed15b916)

With this change, code that uses next::can or next::method inside
sql_deploy_hook(), like components, stops working.

Also fix documentation to match the actual code

13 years agoAllow changing attributes on schema cloning
Florian Ragwitz [Mon, 9 May 2011 16:20:57 +0000]
Allow changing attributes on schema cloning

13 years ago[docs] remove a stray "1;"
Moritz Lenz [Tue, 24 May 2011 15:45:34 +0000]
[docs] remove a stray "1;"

13 years ago[doc] replace pseudocode with real code
Moritz Lenz [Thu, 19 May 2011 19:53:09 +0000]
[doc] replace pseudocode with real code

13 years agofix typo
Justin Hunter [Mon, 23 May 2011 23:06:30 +0000]
fix typo

13 years agoadd DateTime parser for Sybase ASE
Rafael Kitover [Wed, 18 May 2011 09:51:35 +0000]
add DateTime parser for Sybase ASE

13 years agochange FreeTDS related warnings to carp_once
Rafael Kitover [Tue, 17 May 2011 14:12:04 +0000]
change FreeTDS related warnings to carp_once

13 years agomake Oracle trigger queries safe for coderef connect_infos
Rafael Kitover [Tue, 17 May 2011 14:00:35 +0000]
make Oracle trigger queries safe for coderef connect_infos

13 years agotake more care in mangling SELECT when applying subquery limits
Brian Phillips [Wed, 11 May 2011 13:28:56 +0000]
take more care in mangling SELECT when applying subquery limits

Previously, if there was a SELECT sub-query in the WHERE
clause, the regular expression was being a bit too greedy
and stripping too much out.

13 years agoRelease 0.08192 v0.08192
Arthur Axel 'fREW' Schmidt [Tue, 10 May 2011 04:22:30 +0000]
Release 0.08192

13 years agoturn 'use vars' into 'our'
Justin Hunter [Mon, 9 May 2011 20:14:31 +0000]
turn 'use vars' into 'our'
move the $VERSION up to the top of DBIx/Class.pm to aid in version detection
(things like Module::Metadata find the $VERSION string and base it on the last package statement it has seen, not knowing that } 'ends' the package)

13 years agoFix incorrect > vs >= ver. check, causing 5.13.1 fails
Peter Rabbitson [Tue, 10 May 2011 00:14:40 +0000]
Fix incorrect > vs >= ver. check, causing 5.13.1 fails

13 years agoremove meaningless mysql test that breaks on Win32
Rafael Kitover [Sun, 8 May 2011 16:27:28 +0000]
remove meaningless mysql test that breaks on Win32

13 years agoremove TODOs solved by helpers
Arthur Axel 'fREW' Schmidt [Mon, 9 May 2011 23:30:55 +0000]
remove TODOs solved by helpers

13 years agoFix serious DBD::SQLite numeric datatype mismatch regression
Peter Rabbitson [Mon, 9 May 2011 23:16:11 +0000]
Fix serious DBD::SQLite numeric datatype mismatch regression

13 years agoremove done TODO entry (infer quote_char)
Rafael Kitover [Sat, 7 May 2011 15:03:52 +0000]
remove done TODO entry (infer quote_char)

13 years agoRelease 0.08191 v0.08191
Arthur Axel 'fREW' Schmidt [Tue, 3 May 2011 00:39:44 +0000]
Release 0.08191

13 years agoAdded documentation for the -ident/-value operators in SQLMaker.
Naveed Massjouni [Sat, 23 Apr 2011 09:28:00 +0000]
Added documentation for the -ident/-value operators in SQLMaker.

13 years agoSkip blob like ? comparison on older oracle versions (doesn't work)
Peter Rabbitson [Mon, 2 May 2011 15:35:42 +0000]
Skip blob like ? comparison on older oracle versions (doesn't work)

13 years agoRelease 0.08190_01
Arthur Axel 'fREW' Schmidt [Mon, 2 May 2011 15:03:52 +0000]
Release 0.08190_01

13 years agoFix assumption in Sybase::ASE blob updater: cond is not always a HASHREF
Rafael Kitover [Mon, 2 May 2011 12:38:44 +0000]
Fix assumption in Sybase::ASE blob updater: cond is not always a HASHREF

13 years agoThrow away the error prone _strip_cond_qualifiers
Peter Rabbitson [Mon, 2 May 2011 11:36:18 +0000]
Throw away the error prone _strip_cond_qualifiers

Review of 61f031bf made it clear that in order to make this work properly
pretty much the entire sqla logic will need to be replicated. So instead
the hacky approach was taken to abuse a botched version of SQLA which
is guaranteed to parse its own command tree correctly :)

13 years agoRevert the smart-select-ordering introduced in 36fd7f07
Peter Rabbitson [Tue, 15 Feb 2011 11:43:33 +0000]
Revert the smart-select-ordering introduced in 36fd7f07

While on its surface an awesome idea, it proced to be problematic:
users of ->cursor and ->as_query expected that the result will have the same
column-order as what they put in the arguments. Also users abuse +select as
there's no tomorrow, which yielded interesting bugs. The current (and I hope
final) behavior is:

At the end of a chain, the resulting SQL will contain:

- a merger of all columns and then all +columns attributes in the
  declared order. If columns is declared as a multiselect hashref
  i.e. { as1 => sel1, as2 => sel2 }, then the selectors for this
  segment are ordered alphabetically. De-duplication is also always
  performed on columns arguments - only the first set of identical
  select/as pairs is preserved

- a merger of all select/as pairs, strict order, no deduplication

- a merger of +select/+as pairs, same rules as above

As a result of this prefetch on un-balanced resultsets now properly throws
an exception

13 years agoChannel all DBIHacks methods to the replicated writer
Peter Rabbitson [Sat, 30 Apr 2011 02:08:52 +0000]
Channel all DBIHacks methods to the replicated writer

Note this is a workaround to fix an actual reported bug. The whole system
reeks of misdesign, and needs to be revisited at some point.

13 years agoRevert incorrect assumption about non-functional cached pagers 65245220
Peter Rabbitson [Sat, 30 Apr 2011 00:43:30 +0000]
Revert incorrect assumption about non-functional cached pagers 65245220

While on the surface it seems logical that a cached resultset is inherently
non-pageable, one has to remember that search chaining with different
arguments (i.e. different offset) fires a new query, not subject to the
existing resultset cache.

13 years agoUse clearer varnames
Peter Rabbitson [Mon, 4 Oct 2010 09:50:52 +0000]
Use clearer varnames

13 years agoFix incorrect default sqlt_deploy_hook signature
Peter Rabbitson [Sun, 6 Feb 2011 10:31:45 +0000]
Fix incorrect default sqlt_deploy_hook signature

13 years agoDocumentation regarding resultsets in list context
Damien Krotkine [Fri, 22 Apr 2011 20:49:29 +0000]
Documentation regarding resultsets in list context

13 years agoCleanup Oracle's 00a28188 / add support for update/delete with blobs in WHERE
Rafael Kitover [Sun, 1 May 2011 21:18:35 +0000]
Cleanup Oracle's 00a28188 / add support for update/delete with blobs in WHERE

Make a separate path for as_query, so that the sql does not pass thorugh storage
multiple times. Also do not mangle the sql unless blob binds are detected.

13 years agofix MSSQL on_connect_call => 'use_dynamic_cursors' regression in 1db83fb9
Rafael Kitover [Mon, 25 Apr 2011 15:32:08 +0000]
fix MSSQL on_connect_call => 'use_dynamic_cursors' regression in 1db83fb9

13 years agoprefetch docs: prefetch works on all rel types
Fitz Elliott [Thu, 21 Apr 2011 17:19:13 +0000]
prefetch docs: prefetch works on all rel types

Update the prefetch docs to state that prefetch works with all
relationship types, where previously it had said that it works with
only belongs_to and has_one.

Also update the subsequent example. The old example was confusing
because it specified two has_many relationships on the same level,
something that DBIC emits a warning about.  That example is replaced
with a CD-centric example that demonstrates how many different
relationship types can be used together in a prefetch, but omits the
multiple has_manys.

Add a warning, example, and explanation of the troubles with using
multiple has_many relations in a prefetch.

The old text incorrectly stated that prefetch will override join and
select attributes. Describe current behavior with examples.

13 years agosavepoints for SQLite
Rafael Kitover [Fri, 25 Feb 2011 12:01:05 +0000]
savepoints for SQLite

13 years agoAnother overhaul of transaction/savepoint handling
Peter Rabbitson [Tue, 26 Apr 2011 06:38:26 +0000]
Another overhaul of transaction/savepoint handling

- Move most of the transaction logic back to ::Storage, only leave
  DBI-specific overrides in ::Storage::DBI
- Fix bug where a nested rollback would destabilize the entire execution
  chain
- Better checks for connectivity/ordering of txn/svp operations
- Make DBIC::Storage::NESTED_ROLLBACK_EXCEPTION a proper exception subclass
- Standardize the txn/svp names - renamed the actual workers
  _dbh_begin_work               to _exec_txn_begin
  _dbh_commit                   to _exec_txn_commit
  _dbh_rollback                 to _exec_txn_rollback
  _svp_[begin|release|rollback] to _exec_svp_[begin|release|rollback]

13 years agoCleanup/improve the leaktest a bit
Peter Rabbitson [Thu, 28 Apr 2011 15:02:35 +0000]
Cleanup/improve the leaktest a bit

13 years agoTweaked example code for having non-db data accessors.
Matt Sickler [Fri, 29 Apr 2011 17:58:32 +0000]
Tweaked example code for having non-db data accessors.

13 years agoFix custom-relationships on resultsources with multilevel monikers
Peter Rabbitson [Fri, 22 Apr 2011 20:31:28 +0000]
Fix custom-relationships on resultsources with multilevel monikers

13 years agoFix stupid optimizer bug with has_many joined over might_have
Peter Rabbitson [Fri, 22 Apr 2011 12:14:02 +0000]
Fix stupid optimizer bug with has_many joined over might_have

13 years agoDrop DBI requirement down to 1.57
Peter Rabbitson [Thu, 21 Apr 2011 16:46:25 +0000]
Drop DBI requirement down to 1.57

SQLite, MySQL, Pg, Oracle, ODBC and Sybase all tested to work

13 years agoFix $rs->next when using HRI with right-join-side data injected into main obj
Alexander Kuznetsov [Thu, 10 Mar 2011 16:37:59 +0000]
Fix $rs->next when using HRI with right-join-side data injected into main obj

13 years agohandle BLOB and CLOB columns in WHERE for Oracle
Rafael Kitover [Fri, 8 Apr 2011 17:52:49 +0000]
handle BLOB and CLOB columns in WHERE for Oracle

13 years agoAdd retrieve_on_insert column_info flag, to autoretrieve RDBMS-side defaults
Robert Bohne [Thu, 10 Mar 2011 08:19:28 +0000]
Add retrieve_on_insert column_info flag, to autoretrieve RDBMS-side defaults

Also move the UniqueIdentifier code from insert() to _prefetch_autovalues()
where it makes more logical sense

13 years agomake a proper storage base class for Firebird
Rafael Kitover [Tue, 12 Apr 2011 23:46:19 +0000]
make a proper storage base class for Firebird

13 years agofix some spelling mistakes
Justin Hunter [Thu, 14 Apr 2011 15:46:54 +0000]
fix some spelling mistakes

13 years agosupport sub-second precision for TIMESTAMPs for Firebird over ODBC
Rafael Kitover [Sat, 9 Apr 2011 21:48:38 +0000]
support sub-second precision for TIMESTAMPs for Firebird over ODBC

13 years agoFix complex limits with subqueries in selectors
Arthur Axel 'fREW' Schmidt [Fri, 8 Apr 2011 16:02:43 +0000]
Fix complex limits with subqueries in selectors

(fix both incorrect splitting of the selector list and duplication of binds)

13 years agosupport for DBD::Firebird
Rafael Kitover [Sat, 9 Apr 2011 19:54:00 +0000]
support for DBD::Firebird

13 years agoParameterize pagination
Arthur Axel 'fREW' Schmidt [Thu, 20 Jan 2011 05:03:04 +0000]
Parameterize pagination

13 years agoUse _is_binary_lob_type to determine datatypes in need of PG bytea binds
Rafael Kitover [Sat, 9 Apr 2011 13:16:33 +0000]
Use _is_binary_lob_type to determine datatypes in need of PG bytea binds

13 years agoRemove use of _resolve_column_info call from _prep_for_execute in NoBindVars
Rafael Kitover [Sat, 9 Apr 2011 13:00:47 +0000]
Remove use of _resolve_column_info call from _prep_for_execute in NoBindVars

Use the datatype as passed via the bind attribute resolution

13 years agoSome test fixes and TODOs for older Oracle versions
Peter Rabbitson [Mon, 4 Apr 2011 07:28:18 +0000]
Some test fixes and TODOs for older Oracle versions

13 years agoRefactor/improve support of DBD::Sybase compiled against FreeTDS (mainly MSSQL)
Rafael Kitover [Fri, 24 Dec 2010 12:53:11 +0000]
Refactor/improve support of DBD::Sybase compiled against FreeTDS (mainly MSSQL)

13 years agoExtend tests for MARs under MSSQL over DBD::Sybase
Rafael Kitover [Fri, 24 Dec 2010 12:53:11 +0000]
Extend tests for MARs under MSSQL over DBD::Sybase

13 years agoConsistently use MyApp::Schema throught the documentation
Rafael Kitover [Fri, 24 Dec 2010 12:53:11 +0000]
Consistently use MyApp::Schema throught the documentation

13 years agoTest for an insane yet valid rel condition with subquery
Moritz Onken [Tue, 25 Jan 2011 16:08:16 +0000]
Test for an insane yet valid rel condition with subquery

13 years agoMerge branch 0.08200_track into master
Peter Rabbitson [Thu, 7 Apr 2011 23:55:41 +0000]
Merge branch 0.08200_track into master

13 years agoConsolidate all constants under DBIC::_ENV_, bump n::c breakage to < 5.8.5
Peter Rabbitson [Mon, 4 Apr 2011 08:13:34 +0000]
Consolidate all constants under DBIC::_ENV_, bump n::c breakage to < 5.8.5

13 years agoOverhaul populate code - fix \[] support and exotic values (arrays, etc.)
Peter Rabbitson [Wed, 9 Mar 2011 10:21:36 +0000]
Overhaul populate code - fix \[] support and exotic values (arrays, etc.)

In addition cleanup populate() error messages a bit

13 years agoComprehensive MSAccess support over both DBD::ODBC and DBD::ADO
Rafael Kitover [Sun, 23 Jan 2011 12:03:13 +0000]
Comprehensive MSAccess support over both DBD::ODBC and DBD::ADO

13 years agoFix/clarify Oracle decision whether to use WhereJoins
Peter Rabbitson [Wed, 30 Mar 2011 11:11:28 +0000]
Fix/clarify Oracle decision whether to use WhereJoins

Remove the suggestion that 8i supports ANSI but is slow - leave it
as a test only (the docs are confusing enough already)

13 years agoFix (and test) quoting with the older style of WhereJoins used by Oracle
Peter Rabbitson [Wed, 30 Mar 2011 11:03:25 +0000]
Fix (and test) quoting with the older style of WhereJoins used by Oracle

Also simplify the join overload process a bit

13 years agofix from => $rs->as_query
Arthur Axel 'fREW' Schmidt [Sat, 26 Mar 2011 01:05:55 +0000]
fix from => $rs->as_query

13 years agomake the DB2/AS400 storage a subclass of DB2, do RNO detection, fix FetchFirst
Rafael Kitover [Mon, 28 Mar 2011 08:34:23 +0000]
make the DB2/AS400 storage a subclass of DB2, do RNO detection, fix FetchFirst

13 years agoSeveral 5.8.old fixes
Peter Rabbitson [Tue, 29 Mar 2011 23:31:20 +0000]
Several 5.8.old fixes

* Stop running threading tests on < 5.8.5 - DBD::Pg is *really* unhappy there
* Switch t/55namespaces_cleaned.t to Package::Stash - the hand-written syntax
  breaks 5.8.1 and I'm lazy (and it's an implicit dep anyway)
* Stop auto-cleaning the imports of DBIC::Carp - it segfaults all over the
  place on 5.8.1 (will revisit when I rewrite n::c in pure-perl)

13 years agoMassive rewrite of bind handling, and overall simplification of ::Storage::DBI
Peter Rabbitson [Wed, 26 Jan 2011 13:03:22 +0000]
Massive rewrite of bind handling, and overall simplification of ::Storage::DBI

There's no practical way to split this into smaller pieces so here it goes:

Bind attribute handling was badly integrated into dbic almost from the
start. Until now the only information about a value was encoded as the
column name contained as the first element of the bind arrayref. The
column name was then resolved to the proper colinfo (deep in ::Storage::DBI)
and then a match was ran on the datatype to try to find an appropriate
set of bind attributes. Besides being fragile and inefficient, this
method also broke down completely when:
  * No column name could be associated with a bind (arguments to complex
    literal functions)
  * as_query results would encode the column names that can no longer
    be resolved since the inner result sources are no longer visible

To fix this all up and provide more flexibility the standard [ $col => $val ]
was replaced with [ \%args => $val ]. The format of \%args is currently:

  {
    dbd_attrs => '
      If present (in any form) this is what is being passed directly to
      bind_param. Note that different DBD's expect different bind args,
      e.g. DBD::SQLite takes a single numerical type, while DBD::Pg takes
      a hashref if bind options. If this is specified all other bind
      options described below are ignored
    ',
    sqlt_datatype => '
      If present it is used to infer the actual bind attribute by passing
      to $resolved_storage->bind_attribute_by_data_type(). Note that the
      data type is somewhat freeform (hence the sqlt_ prefix) - currently
      drivers are expected to dtrt when given a common datatype name (not
      ideal, but that's what we got at this point). Defaults to the
      "data_type" from the add_columns colinfo.
    ',
    sqlt_size => '
      Currently used to correctly allocate buffers for bind_param_inout().
      Defaults to "size" from the add_columns colinfo, or to a sensible value
      based on the "data_type"
    ',
    dbic_colname => '
      Used to fill in missing sqlt_datatype and sqlt_size attributes (if
      they are explicitly specified they are never overriden). Also used
      by some weird DBDs where the column name should be available at
      bind_param time (hello Oracle).
    ',
  }

For backcompat/convenience the following shortcuts are supported:

  [ $name => $val ] === [ { dbic_colname => $name }, $val ]

  [ \$dt => $val ] === [ { sqlt_datatype => $dt }, $val ]

  [ undef => $val ] === [ {}, $val ]

  ( pending in the next patch: [ $val ] === [ {}, $val ] )

On each passage through the storages (either for execute or for as_query
formatting) the information is filled in whenever available, so that by
the time the final binds_param takes place ::Storage::DBI::_dbi_attrs_for_bind
has all the available information about a particular bind value (no matter
where it came from).

A side efect of this is that as_query now always returns resolved
[ \%args => $val ] forms of bind values (hence the huge amount of test changes
in this patchset). While it should not be a major concern, it could
potentially throw off tests that expect a specific output of as_query. If
this becomes a problem a "compat mode as_query" flag will be introduced asap.

Additional changes in this patchset are:

* The signatures of pretty much the entire execution chain changed. Luckily
  everything that required changing was private. All drivers were adjusted
  appropriately (though something could have been missed). Affected methods
  on ::Storage::DBI are:

  _prep_for_execute
  _dbh_execute
  _execute
  _select_args_to_query
  _max_column_bytesize

  additionally the invocation of _prep_for_execute moved from _dbh_execute
  to _execute, and the return of _select_args also changed

* source_bind_attributes was deprecated. Luckily it was never documented in
  the main documentation. Sadly it was documented in individual storage
  drivers. As such it was necessary to provide a compat shim that would invoke
  the thing if it is detected (with the approproate warning)

* _fix_bind_params was renamed to _format_for_trace

13 years agoPrivatize _sth
Peter Rabbitson [Mon, 28 Mar 2011 11:45:40 +0000]
Privatize _sth

13 years agoShuffle tests around (no changes)
Peter Rabbitson [Wed, 9 Mar 2011 12:59:07 +0000]
Shuffle tests around (no changes)

13 years agoCorrectly select the root source of the inner part of a complex prefetch
Peter Rabbitson [Sat, 12 Mar 2011 23:47:40 +0000]
Correctly select the root source of the inner part of a complex prefetch

Also better diagnostics to aid source mis-application during colinfo
resolution

13 years agoStop flooding the console with garbage on pg blob errors
Peter Rabbitson [Mon, 28 Mar 2011 13:21:35 +0000]
Stop flooding the console with garbage on pg blob errors