due to badly-written handlers (the mechanism was never meant
to be able to suppress exceptions)
- Fixed rels ending with me breaking subqueried limit realiasing
+ - Fixed $rs->update/delete on resutsets constrained by an
+ -or condition
- Remove rogue GROUP BY on non-multiplying prefetch-induced
subqueries
- Oracle sequence detection now *really* works across schemas
ank: Andres Kievsky
+arc: Aaron Crane <arc@cpan.org>
+
arcanez: Justin Hunter <justin.d.hunter@gmail.com>
ash: Ash Berlin <ash@cpan.org>
}
else {
foreach my $key (keys %$where) {
- $key =~ /([^.]+)$/;
- $cond->{$1} = $where->{$key};
+ if ($key eq '-or' && ref $where->{$key} eq 'ARRAY') {
+ $cond->{$key} = $self->_strip_cond_qualifiers($where->{$key});
+ }
+ else {
+ $key =~ /([^.]+)$/;
+ $cond->{$1} = $where->{$key};
+ }
}
}
}
'Only two rows incremented (where => scalarref works)',
);
+{
+ my $rs = $schema->resultset('FourKeys_to_TwoKeys')->search (
+ {
+ -or => [
+ { 'me.pilot_sequence' => 12 },
+ { 'me.autopilot' => 'b' },
+ ],
+ }
+ );
+ lives_ok { $rs->update({ autopilot => 'z' }) }
+ 'Update with table name qualifier in -or conditions lives';
+ is_deeply (
+ [ $tkfks->search ({ pilot_sequence => [12, 22]})
+ ->get_column ('autopilot')->all
+ ],
+ [qw/z z/],
+ '... and yields the right data',
+ );
+}
+
+
$sub_rs->delete;
is ($tkfks->count, $tkfk_cnt -= 2, 'Only two rows deleted');