Bug 21908: Add DISTINCT biblionumber to rebuild_zebra.pl
authorFridolin Somers <fridolin.somers@biblibre.com>
Thu, 29 Nov 2018 09:50:06 +0000 (10:50 +0100)
committerFridolin Somers <fridolin.somers@biblibre.com>
Wed, 2 Jan 2019 09:24:52 +0000 (10:24 +0100)
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 <pierre-marc.thibault@inLibro.com>
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
(cherry picked from commit a1b08269a7031417312e6265ace9ef5b995933fa)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
(cherry picked from commit 397f2e850ced3acaeb8d0f103694262ba339d63f)

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 7008d6ae03a1f5dac6b6c3b7fd42a13d3393abab)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>

misc/migration_tools/rebuild_zebra.pl

index 0ecbbd0..5605aaa 100755 (executable)
@@ -479,7 +479,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);