* Misc
- IFF DBIC_TRACE output defaults to STDERR we now silence the possible
wide-char warnings if the trace happens to contain unicode
- - Stop explicitly stringifying objects before passing them to DBI,
- instead assume that the DBI/DBD combo will take care of things
- Remove ::ResultSource::resolve_condition - the underlying machinery
is in flux, and the method has had a deprecation warning for 5 years
);
}
else {
+ # FIXME SUBOPTIMAL - DBI needs fixing to always stringify regardless of DBD
+ my $v = ( length ref $bind->[$i][1] and is_plain_value $bind->[$i][1] )
+ ? "$bind->[$i][1]"
+ : $bind->[$i][1]
+ ;
+
$sth->bind_param(
$i + 1,
- $bind->[$i][1],
+ # The temp-var is CRUCIAL - DO NOT REMOVE IT, breaks older DBD::SQLite RT#79576
+ $v,
$bind_attrs->[$i],
);
}
my @col_range = (0..$#$cols);
+ # FIXME SUBOPTIMAL - DBI needs fixing to always stringify regardless of DBD
+ # For the time being forcibly stringify whatever is stringifiable
+ # ResultSet::populate() hands us a copy - safe to mangle
+ for my $r (0 .. $#$data) {
+ for my $c (0 .. $#{$data->[$r]}) {
+ $data->[$r][$c] = "$data->[$r][$c]"
+ if ( length ref $data->[$r][$c] and is_plain_value $data->[$r][$c] );
+ }
+ }
+
my $colinfos = $source->columns_info($cols);
local $self->{_autoinc_supplied_for_op} =
# intersted in are much more limited than the fullblown thing, and
# this is a relatively hot piece of code
(
- # either has stringification which DBI prefers out of the box
+ # FIXME - DBI needs fixing to stringify regardless of DBD
+ #
+ # either has stringification which DBI SHOULD prefer out of the box
#first { *{$_ . '::(""'}{CODE} } @{ mro::get_linear_isa( ref $_[0] ) }
overload::Method($_[0], '""')
or
)
? ()
# one unique for populate() and create() each
- : (qr/\QPOSSIBLE *PAST* DATA CORRUPTION detected \E.+\QTrigger condition encountered at @{[ __FILE__ ]} line\E \d/) x 3
+ : (qr/\QPOSSIBLE *PAST* DATA CORRUPTION detected \E.+\QTrigger condition encountered at @{[ __FILE__ ]} line\E \d/) x 2
], 'Data integrity warnings as planned';
lives_ok {