From: Peter Rabbitson Date: Mon, 2 Mar 2015 06:08:00 +0000 (+0100) Subject: Remove warning introduced in 75a1d824 (cherry-pick of cff17b97) X-Git-Tag: v0.08271~13 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=0d862c5c125b52e27ecd71111f7202d1dd9e176e;p=dbsrgits%2FDBIx-Class.git Remove warning introduced in 75a1d824 (cherry-pick of cff17b97) --- diff --git a/Changes b/Changes index 777b774..2e502f3 100644 --- a/Changes +++ b/Changes @@ -5,6 +5,9 @@ Revision history for DBIx::Class implementation changes due to RT#100648 made an alarm() based timeout lock-prone. + * Misc + - Remove warning about potential side effects of RT#79576 (scheduled) + 0.08270 2014-01-30 21:54 (PST) * Fixes - Fix 0.08260 regression in DBD::SQLite bound int handling. Inserted diff --git a/lib/DBIx/Class/Storage/DBI/SQLite.pm b/lib/DBIx/Class/Storage/DBI/SQLite.pm index 2e4e312..9aa3de2 100644 --- a/lib/DBIx/Class/Storage/DBI/SQLite.pm +++ b/lib/DBIx/Class/Storage/DBI/SQLite.pm @@ -60,14 +60,9 @@ stringifiable object. 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 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 2015. =back @@ -308,14 +303,7 @@ sub _dbi_attrs_for_bind { = 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 overload::Method($bind->[$i][1], '""') ); - if ( defined $bindattrs->[$i] and @@ -358,14 +346,6 @@ sub _dbi_attrs_for_bind { } } - 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; } diff --git a/t/100populate.t b/t/100populate.t index 177231a..df7533a 100644 --- a/t/100populate.t +++ b/t/100populate.t @@ -318,8 +318,6 @@ lives_ok { # test all kinds of population with stringified objects 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 @@ -406,18 +404,7 @@ warnings_like { ); $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 2 -], 'Data integrity warnings as planned'; +} [], 'Data integrity warnings gone as planned'; lives_ok { $schema->resultset('TwoKeys')->populate([{