From: Peter Rabbitson Date: Tue, 17 Mar 2015 15:21:47 +0000 (+0100) Subject: Fix exception on complex update/delete under a replicated setup X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=da4a8fe752719362c6f6b1be5b42593fc4509ad6;p=dbsrgits%2FDBIx-Class-Historic.git Fix exception on complex update/delete under a replicated setup THIS COMMIT IS A HACK!!! The actual fix is migration of the logic to the SQLMaker subclass and deal with it there. However the entire class hierarchy is currently in flux, so go with the least invasive change until the storage rewrite settles. Testing for this will show up in the next commit --- diff --git a/Changes b/Changes index 104efbd..e64e82e 100644 --- a/Changes +++ b/Changes @@ -12,6 +12,8 @@ Revision history for DBIx::Class resolution codepath, restoring exotic uses of inflate_result http://lists.scsys.co.uk/pipermail/dbix-class/2015-January/011876.html - Fix updating multiple CLOB/BLOB columns on Oracle + - Fix exception on complex update/delete under a replicated setup + http://lists.scsys.co.uk/pipermail/dbix-class/2015-January/011903.html - Fix incorrect collapsing-parser source being generated in the presence of unicode data among the collapse-points - Fix endless loop on BareSourcelessResultClass->throw_exception(...) diff --git a/lib/DBIx/Class/Storage/DBI/Replicated.pm b/lib/DBIx/Class/Storage/DBI/Replicated.pm index 231b5a5..273b218 100644 --- a/lib/DBIx/Class/Storage/DBI/Replicated.pm +++ b/lib/DBIx/Class/Storage/DBI/Replicated.pm @@ -311,6 +311,7 @@ my $method_dispatch = { _parse_connect_do savepoints _sql_maker_opts + _use_multicolumn_in _conn_pid _dbh_autocommit _native_data_type @@ -367,7 +368,7 @@ my $method_dispatch = { # the capability framework # not sure if CMOP->initialize does evil things to DBIC::S::DBI, fix if a problem grep - { $_ =~ /^ _ (?: use | supports | determine_supports ) _ /x } + { $_ =~ /^ _ (?: use | supports | determine_supports ) _ /x and $_ ne '_use_multicolumn_in' } ( Class::MOP::Class->initialize('DBIx::Class::Storage::DBI')->get_all_method_names ) )], };