Skip to content

Commit

Permalink
Remove warning introduced in 75a1d82
Browse files Browse the repository at this point in the history
  • Loading branch information
ribasushi committed Mar 2, 2015
1 parent 3591019 commit cff17b9
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 37 deletions.
1 change: 1 addition & 0 deletions Changes
Expand Up @@ -15,6 +15,7 @@ Revision history for DBIx::Class
timeout lock-prone.

* Misc
- Remove warning about potential side effects of RT#79576 (scheduled)
- Skip tests in a way more intelligent and speedy manner when optional
dependencies are missing
- Make the Optional::Dependencies error messages cpanm-friendly
Expand Down
26 changes: 3 additions & 23 deletions lib/DBIx/Class/Storage/DBI/SQLite.pm
Expand Up @@ -61,14 +61,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<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
Expand Down Expand Up @@ -317,14 +312,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 is_plain_value($bind->[$i][1]) );

if (
defined $bindattrs->[$i]
and
Expand Down Expand Up @@ -367,14 +355,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;
}

Expand Down
15 changes: 1 addition & 14 deletions t/100populate.t
Expand Up @@ -384,8 +384,6 @@ lives_ok {
# 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
Expand Down Expand Up @@ -506,18 +504,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 4
], 'Data integrity warnings as planned';
} [], 'Data integrity warnings gone as planned';
$schema->is_executed_sql_bind(
sub {
Expand Down

0 comments on commit cff17b9

Please sign in to comment.