This is an automated email from the git hooks/post-receive script. gregoa pushed a commit to branch master in repository libdbix-class-perl.
commit 06b8f2444c7b2b317090a5de4c4b0a68dc2f1668 Author: gregor herrmann <gre...@debian.org> Date: Sun Mar 22 16:18:27 2015 +0100 Add patches cherry-picked by upstream to fix some regressions. - 0001-Relax-sanity-check-in-_resolve_relationship_conditio.patch Relax sanity check in _resolve_relationship_condition - 0002-Remove-runtime-warning-not-applicable-to-the-slow-mo.patch Remove runtime warning not applicable to the slow-moving world of debian - 0003-Fix-updating-multiple-CLOB-BLOB-columns-on-Oracle.patch Fix updating multiple CLOB/BLOB columns on Oracle - 0004-Fix-exception-on-complex-update-delete-under-a-repli.patch Fix exception on complex update/delete under a replicated setup - 0005-Fix-uninitialized-warnings-on-empty-hashes-passed-to.patch Fix uninitialized warnings on empty hashes passed to join/prefetch Thanks: Peter Rabbitson for cherry-picking the changes in git branches for Debian. --- ...y-check-in-_resolve_relationship_conditio.patch | 46 +++++++++ ...ime-warning-not-applicable-to-the-slow-mo.patch | 111 +++++++++++++++++++++ ...ting-multiple-CLOB-BLOB-columns-on-Oracle.patch | 52 ++++++++++ ...on-on-complex-update-delete-under-a-repli.patch | 47 +++++++++ ...alized-warnings-on-empty-hashes-passed-to.patch | 39 ++++++++ debian/patches/series | 5 + 6 files changed, 300 insertions(+) diff --git a/debian/patches/0001-Relax-sanity-check-in-_resolve_relationship_conditio.patch b/debian/patches/0001-Relax-sanity-check-in-_resolve_relationship_conditio.patch new file mode 100644 index 0000000..c62346f --- /dev/null +++ b/debian/patches/0001-Relax-sanity-check-in-_resolve_relationship_conditio.patch @@ -0,0 +1,46 @@ +From 5ea3b0ea916b1c1d37b94be3e0522938ccc4dae6 Mon Sep 17 00:00:00 2001 +From: Peter Rabbitson <ribasu...@cpan.org> +Date: Fri, 13 Mar 2015 13:43:08 +0100 +Subject: [PATCH 1/5] Relax sanity check in _resolve_relationship_condition + +This woud be a clear regression for a broad range of downstream Apps +compared to the behavior of 0.08196 + +It doesn't buy much and breaks legitimate class redirection techniques +(some of them even documented in the cookbook) + +(cherry pick of 7411a51d) +--- + Changes | 5 +++++ + lib/DBIx/Class/ResultSource.pm | 4 ++-- + 2 files changed, 7 insertions(+), 2 deletions(-) + +--- a/Changes ++++ b/Changes +@@ -1,5 +1,10 @@ + Revision history for DBIx::Class + ++ * Fixes ++ - Relax the 'self_result_object' argument check in the relationship ++ resolution codepath, restoring exotic uses of inflate_result ++ http://lists.scsys.co.uk/pipermail/dbix-class/2015-January/011876.html ++ + 0.082810 2014-10-25 13:58 (UTC) + * Fixes + - Fix incorrect collapsing-parser source being generated in the +--- a/lib/DBIx/Class/ResultSource.pm ++++ b/lib/DBIx/Class/ResultSource.pm +@@ -1904,11 +1904,11 @@ + + $args->{condition} ||= $rel_info->{cond}; + +- $self->throw_exception( "Argument 'self_result_object' must be an object of class '@{[ $self->result_class ]}'" ) ++ $self->throw_exception( "Argument 'self_result_object' must be an object inheriting from DBIx::Class::Row" ) + if ( + exists $args->{self_result_object} + and +- ( ! defined blessed $args->{self_result_object} or ! $args->{self_result_object}->isa($self->result_class) ) ++ ( ! defined blessed $args->{self_result_object} or ! $args->{self_result_object}->isa('DBIx::Class::Row') ) + ) + ; + diff --git a/debian/patches/0002-Remove-runtime-warning-not-applicable-to-the-slow-mo.patch b/debian/patches/0002-Remove-runtime-warning-not-applicable-to-the-slow-mo.patch new file mode 100644 index 0000000..0f54dd2 --- /dev/null +++ b/debian/patches/0002-Remove-runtime-warning-not-applicable-to-the-slow-mo.patch @@ -0,0 +1,111 @@ +From 800161301a3ad18f1ebb9b377a275c73ea8aaa93 Mon Sep 17 00:00:00 2001 +From: Peter Rabbitson <ribasu...@cpan.org> +Date: Mon, 2 Mar 2015 07:08:00 +0100 +Subject: [PATCH 2/5] Remove runtime warning not applicable to the slow-moving + world of debian + +While the problem *was* affecting 0.08196, it's not something that would +be of use to many debian production users, and in fact can generate many +misguided bugreports (the warned-about and raher rare condition has been +fixed since 0.08210) + +(cherry pick of 93cef6c0) +--- + Changes | 3 +++ + lib/DBIx/Class/Storage/DBI/SQLite.pm | 26 +++----------------------- + t/100populate.t | 15 +-------------- + 3 files changed, 7 insertions(+), 37 deletions(-) + +--- a/Changes ++++ b/Changes +@@ -5,6 +5,9 @@ + resolution codepath, restoring exotic uses of inflate_result + http://lists.scsys.co.uk/pipermail/dbix-class/2015-January/011876.html + ++ * Misc ++ - Remove warning about potential side effects of RT#79576 (scheduled) ++ + 0.082810 2014-10-25 13:58 (UTC) + * Fixes + - Fix incorrect collapsing-parser source being generated in the +--- a/lib/DBIx/Class/Storage/DBI/SQLite.pm ++++ b/lib/DBIx/Class/Storage/DBI/SQLite.pm +@@ -61,14 +61,9 @@ + + Even if you upgrade DBIx::Class (which works around the bug starting from + version 0.08210) you may still have corrupted/incorrect data in your database. +-DBIx::Class will currently detect when this condition (more than one +-stringifiable object in one CRUD call) is encountered and will issue a warning +-pointing to this section. This warning will be removed 2 years from now, +-around April 2015, You can disable it after you've audited your data by +-setting the C<DBIC_RT79576_NOWARN> environment variable. Note - the warning +-is emitted only once per callsite per process and only when the condition in +-question is encountered. Thus it is very unlikely that your logsystem will be +-flooded as a result of this. ++DBIx::Class warned about this condition for several years, hoping to give ++anyone affected sufficient notice of the potential issues. The warning was ++removed in version 0.082900. + + =back + +@@ -317,14 +312,7 @@ + = modver_gt_or_eq('DBD::SQLite', '1.37') ? 1 : 0; + } + +- # an attempt to detect former effects of RT#79576, bug itself present between +- # 0.08191 and 0.08209 inclusive (fixed in 0.08210 and higher) +- my $stringifiable = 0; +- + for my $i (0.. $#$bindattrs) { +- +- $stringifiable++ if ( length ref $bind->[$i][1] and is_plain_value($bind->[$i][1]) ); +- + if ( + defined $bindattrs->[$i] + and +@@ -367,14 +355,6 @@ + } + } + +- carp_unique( +- 'POSSIBLE *PAST* DATA CORRUPTION detected - see ' +- . 'DBIx::Class::Storage::DBI::SQLite/RT79576 or ' +- . 'http://v.gd/DBIC_SQLite_RT79576 for further details or set ' +- . '$ENV{DBIC_RT79576_NOWARN} to disable this warning. Trigger ' +- . 'condition encountered' +- ) if (!$ENV{DBIC_RT79576_NOWARN} and $stringifiable > 1); +- + return $bindattrs; + } + +--- a/t/100populate.t ++++ b/t/100populate.t +@@ -385,8 +385,6 @@ + # test all kinds of population with stringified objects + # or with empty sets + warnings_like { +- local $ENV{DBIC_RT79576_NOWARN}; +- + my $rs = $schema->resultset('Artist')->search({}, { columns => [qw(name rank)], order_by => 'artistid' }); + + # the stringification has nothing to do with the artist name +@@ -507,18 +505,7 @@ + ); + + $rs->delete; +-} [ +- # warning to be removed around Apr 1st 2015 +- # smokers start failing a month before that +- ( +- ( DBICTest::RunMode->is_author and ( time() > 1427846400 ) ) +- or +- ( DBICTest::RunMode->is_smoker and ( time() > 1425168000 ) ) +- ) +- ? () +- # one unique for populate() and create() each +- : (qr/\QPOSSIBLE *PAST* DATA CORRUPTION detected \E.+\QTrigger condition encountered at @{[ __FILE__ ]} line\E \d/) x 4 +-], 'Data integrity warnings as planned'; ++} [], 'Data integrity warnings gone as planned'; + + $schema->is_executed_sql_bind( + sub { diff --git a/debian/patches/0003-Fix-updating-multiple-CLOB-BLOB-columns-on-Oracle.patch b/debian/patches/0003-Fix-updating-multiple-CLOB-BLOB-columns-on-Oracle.patch new file mode 100644 index 0000000..37294bd --- /dev/null +++ b/debian/patches/0003-Fix-updating-multiple-CLOB-BLOB-columns-on-Oracle.patch @@ -0,0 +1,52 @@ +From 5713726d6eda6797caf886ba9c29ee0a423f75ac Mon Sep 17 00:00:00 2001 +From: "Kevin L. Kane" <kevin.k...@gmail.com> +Date: Tue, 18 Nov 2014 08:02:33 -0500 +Subject: [PATCH 3/5] 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. + +(cherry pick of 3d02b69a) +--- + AUTHORS | 1 + + Changes | 1 + + lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm | 16 +++++++++++----- + 3 files changed, 13 insertions(+), 5 deletions(-) + +--- a/Changes ++++ b/Changes +@@ -4,6 +4,7 @@ + - Relax the 'self_result_object' argument check in the relationship + 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 + + * Misc + - Remove warning about potential side effects of RT#79576 (scheduled) +--- a/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm ++++ b/lib/DBIx/Class/Storage/DBI/Oracle/Generic.pm +@@ -419,11 +419,17 @@ + + my $attrs = $self->next::method($ident, $bind); + +- for my $i (0 .. $#$attrs) { +- if (keys %{$attrs->[$i]||{}} and my $col = $bind->[$i][0]{dbic_colname}) { +- $attrs->[$i]{ora_field} = $col; +- } +- } ++ # Push the column name into all bind attrs, make sure to *NOT* write into ++ # the existing $attrs->[$idx]{..} hashref, as it is cached by the call to ++ # next::method above. ++ $attrs->[$_] ++ and ++ keys %{ $attrs->[$_] } ++ and ++ $bind->[$_][0]{dbic_colname} ++ and ++ $attrs->[$_] = { %{$attrs->[$_]}, ora_field => $bind->[$_][0]{dbic_colname} } ++ for 0 .. $#$attrs; + + $attrs; + } diff --git a/debian/patches/0004-Fix-exception-on-complex-update-delete-under-a-repli.patch b/debian/patches/0004-Fix-exception-on-complex-update-delete-under-a-repli.patch new file mode 100644 index 0000000..ceb10eb --- /dev/null +++ b/debian/patches/0004-Fix-exception-on-complex-update-delete-under-a-repli.patch @@ -0,0 +1,47 @@ +From adc715e3c685ec81f9a000ce88c19f33736557e8 Mon Sep 17 00:00:00 2001 +From: Peter Rabbitson <ribasu...@cpan.org> +Date: Tue, 17 Mar 2015 16:21:47 +0100 +Subject: [PATCH 4/5] 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. + +(cherry pick of 7f95ea99) +--- + Changes | 2 ++ + lib/DBIx/Class/Storage/DBI/Replicated.pm | 3 ++- + 2 files changed, 4 insertions(+), 1 deletion(-) + +--- a/Changes ++++ b/Changes +@@ -5,6 +5,8 @@ + 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 + + * Misc + - Remove warning about potential side effects of RT#79576 (scheduled) +--- a/lib/DBIx/Class/Storage/DBI/Replicated.pm ++++ b/lib/DBIx/Class/Storage/DBI/Replicated.pm +@@ -307,6 +307,7 @@ + _parse_connect_do + savepoints + _sql_maker_opts ++ _use_multicolumn_in + _conn_pid + _dbh_autocommit + _native_data_type +@@ -363,7 +364,7 @@ + # 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 ) + )], + }; diff --git a/debian/patches/0005-Fix-uninitialized-warnings-on-empty-hashes-passed-to.patch b/debian/patches/0005-Fix-uninitialized-warnings-on-empty-hashes-passed-to.patch new file mode 100644 index 0000000..9390eb1 --- /dev/null +++ b/debian/patches/0005-Fix-uninitialized-warnings-on-empty-hashes-passed-to.patch @@ -0,0 +1,39 @@ +From a7cd6baa494546f6c0716c70eac31626445d0a1f Mon Sep 17 00:00:00 2001 +From: Henry Van Styn <vans...@intellitree.com> +Date: Wed, 29 Oct 2014 09:25:33 -0400 +Subject: [PATCH 5/5] Fix uninitialized warnings on empty hashes passed to + join/prefetch + +(cherry-pick of 08eba48c) +--- + .mailmap | 1 + + AUTHORS | 1 + + Changes | 3 +++ + lib/DBIx/Class/ResultSet.pm | 2 ++ + 4 files changed, 7 insertions(+) + +--- a/Changes ++++ b/Changes +@@ -7,6 +7,9 @@ + - 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 uninitialized warnings on empty hashes passed to join/prefetch ++ https://github.com/vanstyn/RapidApp/commit/6f41f6e48 and ++ http://lists.scsys.co.uk/pipermail/dbix-class/2015-February/011921.html + + * Misc + - Remove warning about potential side effects of RT#79576 (scheduled) +--- a/lib/DBIx/Class/ResultSet.pm ++++ b/lib/DBIx/Class/ResultSet.pm +@@ -3816,8 +3816,10 @@ + + if (ref $b eq 'HASH') { + my ($b_key) = keys %{$b}; ++ $b_key = '' if ! defined $b_key; + if (ref $a eq 'HASH') { + my ($a_key) = keys %{$a}; ++ $a_key = '' if ! defined $a_key; + if ($a_key eq $b_key) { + return (1 + $self->_calculate_score( $a->{$a_key}, $b->{$b_key} )); + } else { diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..262348d --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,5 @@ +0001-Relax-sanity-check-in-_resolve_relationship_conditio.patch +0002-Remove-runtime-warning-not-applicable-to-the-slow-mo.patch +0003-Fix-updating-multiple-CLOB-BLOB-columns-on-Oracle.patch +0004-Fix-exception-on-complex-update-delete-under-a-repli.patch +0005-Fix-uninitialized-warnings-on-empty-hashes-passed-to.patch -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libdbix-class-perl.git _______________________________________________ Pkg-perl-cvs-commits mailing list Pkg-perl-cvs-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits