From a1b08269a7031417312e6265ace9ef5b995933fa Mon Sep 17 00:00:00 2001 From: Fridolin Somers Date: Thu, 29 Nov 2018 10:50:06 +0100 Subject: [PATCH] Bug 21908: Add DISTINCT biblionumber to rebuild_zebra.pl Zebra indexing script misc/migration_tools/rebuild_zebra.pl as a table arg to allow filtering. When using table=items we should use DISTINCT(biblionumber) to avoid indexing several times the same biblio record when it has several items. This patch adds DISTINCT(biblionumber) in all cases it does not harm if its already unique. Test plan : 1) Be sur you have a biblio record with biblionumber 1 with 3 items 2) Run misc/migration_tools/rebuild_zebra.pl -v -b --table items --where="biblionumber=1" 3) Without patch you see "Records exported: 3", with patch only one 4) Check indexing works well Signed-off-by: Pierre-Marc Thibault Signed-off-by: Julian Maurice Signed-off-by: Nick Clemens --- misc/migration_tools/rebuild_zebra.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc/migration_tools/rebuild_zebra.pl b/misc/migration_tools/rebuild_zebra.pl index c594087fff..c193d62e9e 100755 --- a/misc/migration_tools/rebuild_zebra.pl +++ b/misc/migration_tools/rebuild_zebra.pl @@ -476,7 +476,7 @@ sub select_all_authorities { sub select_all_biblios { $table = 'biblioitems' unless grep { /^$table$/ } @tables_allowed_for_select; - my $strsth = qq{ SELECT biblionumber FROM $table }; + my $strsth = qq{ SELECT DISTINCT(biblionumber) FROM $table }; $strsth.=qq{ WHERE $where } if ($where); $strsth.=qq{ LIMIT $length } if ($length && !$offset); $strsth.=qq{ LIMIT $offset,$length } if ($offset); -- 2.39.5