If the SQL error message contains a backtick instead of a regular quote,
the regex for throwing an exception did not work.
Example:
Incorrect datetime value: 'wrong_value' for column `koha_master`.`borrowers`.`lastseen`
Note the backtics where the regex contains a regular quote.
This patch makes it more flexible: it allows one \W character before the
column name, even optional.
Test plan:
Run Koha/Object.t
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
(cherry picked from commit
480afea9ddf642fbd6ec499172e5ef6400905424)
Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net>
duplicate_id => $+{key}
);
}
- elsif( $_->{msg} =~ /Incorrect (?<type>\w+) value: '(?<value>.*)' for column '(?<property>\w+)'/ ) {
+ elsif( $_->{msg} =~ /Incorrect (?<type>\w+) value: '(?<value>.*)' for column \W?(?<property>\S+)/ ) {
+ # The optional \W in the regex might be a quote or backtick
Koha::Exceptions::Object::BadValue->throw(
type => $+{type},
value => $+{value},
- property => $+{property}
+ property => $+{property},
);
}
}