From b5388933b64b78ce22b058dd1e5b96e1c0ec78a0 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Thu, 11 Jan 2024 11:53:42 +0000 Subject: [PATCH] Bug 34360: Get distinct biblionumber This fixes the problem noted in the bug: [WARN] DBIx::Class::ResultSetColumn::new(): Attempting to retrieve non-unique column 'biblionumber' on a resultset containing one-to-many joins will return duplicate results. at /usr/share/koha/Koha/Objects.pm line 421 We are taking a list of items, assuming the scenario is that these are from a single biblio and possibly some host_items, then searching and ordering conditionally on whether the biblio is a serial. Current code gets the first biblio from the list - this patch adds a 'DISTINCT' to the results ebfore fetching the column To test: 1 - Find a biblio in the staff interface 2 - Transfer one of the items a few times 3 - Recreate the issue on the command line: export DBIC_TRACE=1 perl -e 'use Koha::Items; my $items = Koha::Items->search({biblionumber=>9})->search_ordered(undef,{ prefetch => ['issue','current_branchtransfers'] }); $items->next' 4 - Note warning: DBIx::Class::ResultSetColumn::new(): Attempting to retrieve non-unique column 'biblionumber' on a resultset containing one-to-many joins will return duplicate results. at /kohadevbox/koha/Koha/Objects.pm line 426 5 - Apply patch 6 - Repeat 3 7 - Error is gone Signed-off-by: baptiste Signed-off-by: Marcel de Rooy Signed-off-by: Katrin Fischer --- Koha/Items.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Koha/Items.pm b/Koha/Items.pm index f3edb77685..7c594e6798 100644 --- a/Koha/Items.pm +++ b/Koha/Items.pm @@ -450,7 +450,7 @@ sub search_ordered { $self = $self->search($params, $attributes); - my @biblionumbers = uniq $self->get_column('biblionumber'); + my @biblionumbers = uniq $self->search(undef,{distinct=>1})->get_column('biblionumber'); if ( scalar ( @biblionumbers ) == 1 && Koha::Biblios->find( $biblionumbers[0] )->serial ) -- 2.20.1