From 782864feb0a5680613e7531a5e53a6e788a3500b Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Wed, 24 Feb 2016 17:10:02 +0000 Subject: [PATCH] Bug 15877 - C4::Barcodes does not correctly calculate db_max for 'annual' barcodes This patch alters the MySQL query to remove a max statement which incorrectly groups full annual barcodes with numeric values. Signed-off-by: Srdjan Signed-off-by: Jonathan Druart --- C4/Barcodes/annual.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/C4/Barcodes/annual.pm b/C4/Barcodes/annual.pm index eb0e80e..1c8a432 100644 --- a/C4/Barcodes/annual.pm +++ b/C4/Barcodes/annual.pm @@ -38,8 +38,8 @@ BEGIN { sub db_max ($;$) { my $self = shift; - my $query = "SELECT max(substring_index(barcode,'-',-1)) AS chunk,barcode FROM items WHERE barcode LIKE ? GROUP BY barcode"; - # FIXME: unreasonably expensive query on large datasets + my $query = "SELECT substring_index(barcode,'-',-1) AS chunk,barcode FROM items WHERE barcode LIKE ? ORDER BY chunk DESC LIMIT 1"; + # FIXME: unreasonably expensive query on large datasets (I think removal of group by does this?) my $sth = C4::Context->dbh->prepare($query); my ($iso); if (@_) { -- 2.7.0