From 4177d3ecd3d5c6620b5bcc09d69c17d2c79997ff Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marc=20V=C3=A9ron?= Date: Tue, 14 Apr 2015 10:28:03 +0200 Subject: [PATCH] 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 Signed-off-by: Katrin Fischer Signed-off-by: Tomas Cohen Arazi --- 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 2238259139..b29fc99b89 100755 --- a/reports/guided_reports.pl +++ b/reports/guided_reports.pl @@ -193,7 +193,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) { @@ -932,6 +932,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}}; } -- 2.39.5