From 30bb703d4201c9df87fbd019c6cf7d33282681a0 Mon Sep 17 00:00:00 2001 From: Pasi Kallinen Date: Thu, 8 May 2014 10:11:29 +0300 Subject: [PATCH] Bug 12214: display SQL errors in reports to users When a user runs a report containing an SQL error, no error is shown to the user. This patch fixes this. To test: 1) Run a report with known good SQL. 2) No error is shown. 3) Run a report with bad SQL (eg. a typo in field name) 4) No error is shown. 5) Apply patch 6) Repeat 1-4. For the bad SQL report, the database error should be shown. Signed-off-by: Galen Charlton --- C4/Reports/Guided.pm | 1 + reports/guided_reports.pl | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/C4/Reports/Guided.pm b/C4/Reports/Guided.pm index 2381483..4b0ab6f 100644 --- a/C4/Reports/Guided.pm +++ b/C4/Reports/Guided.pm @@ -512,6 +512,7 @@ sub execute_query { my $sth = C4::Context->dbh->prepare($sql); $sth->execute(@$sql_params, $offset, $limit); + return ( $sth, { queryerr => $sth->errstr } ) if ($sth->err); return ( $sth ); # my @xmlarray = ... ; # my $url = "/cgi-bin/koha/reports/guided_reports.pl?phase=retrieve%20results&id=$id"; diff --git a/reports/guided_reports.pl b/reports/guided_reports.pl index 71882af..9cb25ea 100755 --- a/reports/guided_reports.pl +++ b/reports/guided_reports.pl @@ -753,7 +753,7 @@ elsif ($phase eq 'Run this report'){ 'execute' => 1, 'name' => $name, 'notes' => $notes, - 'errors' => $errors, + 'errors' => defined($errors) ? [ $errors ] : undef, 'pagination_bar' => pagination_bar($url, $totpages, $input->param('page')), 'unlimited_total' => $total, 'sql_params' => \@sql_params, -- 1.7.10.4