This is not working. We are still getting the error
Unable to programatically derive a required group_by from the supplied order_by criteria. To proceed either add an explicit group_by, or simplify your order_by to only include plain columns (supplied order_by: 'lpad_copynumber').
To recreate the problem you can go to detail.pl and search for something
Without search the query is working.
The problem appears when the query has WHERE parameters added and "GROUP
BY" is added.
DBIC is adding to the GROUP BY what is added to the select, but does not
handle this situation (not a plain column).
You can play with:
1.
Remove from Koha::Items->search_ordered
475 'lpad_copynumber',
=> all good
2. Remove the following block from /usr/share/perl5/DBIx/Class/Storage/DBIHacks.pm
584 # only consider real columns (for functions the user got to do an explicit group_by)
585 my $chunk_ci;
586 if (
587 @{$order_by[$o_idx]} != 1
588 or
589 # only declare an unknown *plain* identifier as "leftover" if we are called with
590 # aliastypes to examine. If there are none - we are still in _resolve_attrs, and
591 # can just assume the user knows what they want
592 ( ! ( $chunk_ci = $colinfos->{$order_by[$o_idx][0]} ) and $attrs->{_aliastypes} )
593 ) {
594 push @$leftovers, $order_by[$o_idx][0];
595 }
=> all good
I don't know if we are doing something wrong here, but I have no idea
how we can build the group_by explicitely.
Is there another way to do this?
Signed-off-by: Laurence Rault <laurence.rault@biblibre.com> Signed-off-by: Emily Lamancusa <emily.lamancusa@montgomerycountymd.gov> Signed-off-by: Tomás Cohen Arazi <tomascohen@theke.io> Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>