From 9a1f3e79ff07f45ddc98d36ed73722206705a94e Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Fri, 18 Oct 2019 09:31:10 +0000 Subject: [PATCH] Bug 23825: Koha/Object.t might fail on a backtick 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 Signed-off-by: Martin Renvoize (cherry picked from commit 480afea9ddf642fbd6ec499172e5ef6400905424) Signed-off-by: Victor Grousset/tuxayo --- Koha/Object.pm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Koha/Object.pm b/Koha/Object.pm index 5154f24ccf..d1ce135540 100644 --- a/Koha/Object.pm +++ b/Koha/Object.pm @@ -175,11 +175,12 @@ sub store { duplicate_id => $+{key} ); } - elsif( $_->{msg} =~ /Incorrect (?\w+) value: '(?.*)' for column '(?\w+)'/ ) { + elsif( $_->{msg} =~ /Incorrect (?\w+) value: '(?.*)' for column \W?(?\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}, ); } } -- 2.39.5