From 8f0bfd6613818a259fd388f9db0798712b9f2d5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20V=C3=A9ron?= Date: Tue, 14 Apr 2015 10:28:03 +0200 Subject: [PATCH] [SIGNED OFF] Bug 13992 - Software error in reports if field or table does not exist To reproduce: - Go to Home > Reports Guided reports wizard - Create report from SQL - Enter something like: select holdrio from borrowers - Save SQL - run report Result: Can't use an undefined value as an ARRAY reference at /usr/share/kohaclone/reports/guided_reports.pl line 932. expected: graceful error message - Change sql to something like: select id from holdrio; - Save SQL - Run report Result: Can't use an undefined value as an ARRAY reference at /usr/share/kohaclone/reports/guided_reports.pl line 932. expected: graceful error message - Change sql to something like: pling from plong - Save SQL Result (after saving): Message "The database returned the following error: 1" Expected: Meaningful message "The database returned the following error: No SELECT" (similar to forbidden statements as UPDATE) Test plan: - Apply patch - Try to reproduce issues above. They should be resolved. Signed-off-by: Nick Clemens --- reports/guided_reports.pl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/reports/guided_reports.pl b/reports/guided_reports.pl index a3009b2..2b9875f 100755 --- a/reports/guided_reports.pl +++ b/reports/guided_reports.pl @@ -192,7 +192,7 @@ elsif ( $phase eq 'Update SQL'){ push @errors, {sqlerr => $1}; } elsif ($sql !~ /^(SELECT)/i) { - push @errors, {queryerr => 1}; + push @errors, {queryerr => "No SELECT"}; } if (@errors) { @@ -929,6 +929,7 @@ elsif ($phase eq 'Save Compound'){ # pass $sth, get back an array of names for the column headers sub header_cell_values { my $sth = shift or return (); + return '' unless ($sth->{NAME}); return @{$sth->{NAME}}; } -- 1.9.1