From 8b7afdb1ea5bd63d11c6685981cced5d91310f4f Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 16 Jun 2021 14:54:47 +0200 Subject: [PATCH] Bug 28523: Escape 'rank' in bor_issues_top.pl It's a MySQL 8 keyword Test plan: Turn off strict_sql_modes (there are other problems in this script) Hit Home Reports > Patrons with the most checkouts Submit the form Without this patch you got: You have an error in your SQL syntax; check the manual that corresponds to your MySQL s erver version for the right syntax to use near 'RANK, borrowers.borrowernumber AS ID FROM `old_issues` With this patch applied you see the report result view --- reports/bor_issues_top.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reports/bor_issues_top.pl b/reports/bor_issues_top.pl index 265362bb0d1..04cdabaeed7 100755 --- a/reports/bor_issues_top.pl +++ b/reports/bor_issues_top.pl @@ -249,7 +249,7 @@ sub calculate { my $strcalc ; # Processing average loanperiods - $strcalc .= "SELECT CONCAT_WS('', borrowers.surname , \",\\t\", borrowers.firstname), COUNT(*) AS RANK, borrowers.borrowernumber AS ID"; + $strcalc .= "SELECT CONCAT_WS('', borrowers.surname , \",\\t\", borrowers.firstname), COUNT(*) AS `RANK`, borrowers.borrowernumber AS ID"; $strcalc .= " , $colfield " if ($colfield); $strcalc .= " FROM `old_issues` LEFT JOIN borrowers USING(borrowernumber) @@ -274,7 +274,7 @@ sub calculate { } $strcalc .= " GROUP BY borrowers.borrowernumber"; $strcalc .= ", $colfield" if ($column); - $strcalc .= " ORDER BY RANK DESC"; + $strcalc .= " ORDER BY `RANK` DESC"; $strcalc .= ",$colfield " if ($colfield); $strcalc .= " LIMIT $limit" if ($limit); -- 2.20.1