Bug 23986: Pass strings to Catmandu for deletion
authorNick Clemens <nick@bywatersolutions.com>
Thu, 7 Nov 2019 19:38:24 +0000 (19:38 +0000)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Mon, 11 Nov 2019 10:31:53 +0000 (10:31 +0000)
The deletion subroutine expects to get a string, this is fine in most places, but when
we sort our records for batch deletion they are cast to numbers and the delete is not processed.

This patch quotes the biblionumbers as strings before passing them to Catmandu

To aid in detecting orphaned records you can use the patches on bug 22831

To test:
 1 - Have or create a bib
 2 - Go to Tools->Batch record deletion
 3 - Click 'Enter a list of record numbers'
 4 - Enter the biblionumber'
 5 - Confirm deletion
 6 - Search for the record, it still appears
 7 - Apply patch, restart all the things
 8 - Repeat 1-6
 9 - This time the record is deleted
10 - Test other methods of record deletion to confirm the record is removed

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Koha/SearchEngine/Elasticsearch/Indexer.pm

index 3610f01..504ccc5 100644 (file)
@@ -303,7 +303,7 @@ sub delete_index {
             )
         );
     }
-    $self->store->bag->delete($_) foreach @$biblionums;
+    $self->store->bag->delete("$_") foreach @$biblionums;
     $self->store->bag->commit;
 }