https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=41950

--- Comment #2 from Tomás Cohen Arazi (tcohen) <[email protected]> ---
Created attachment 194108
  -->
https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=194108&action=edit
Bug 41950: Make +count embeds sortable via SQL COUNT subqueries

Currently, +count embeds (e.g. claims+count) are computed in Perl via
$object->$relation->count during to_api serialization. This means they
cannot be used in _order_by and each count triggers a separate SQL query
per row (N+1).

This patch makes dbic_merge_prefetch detect +count embeds and, when a
matching DBIC relationship exists, inject a correlated COUNT subquery
via +select/+as instead of adding a prefetch.

The order_by entries referencing count aliases are fixed up to strip the
me. prefix, since +as aliases are virtual columns not bound to a table.

In to_api, the is_count handler now checks for the pre-computed column
via get_column before falling back to the Perl-level ->count call. This
preserves backward compatibility for Koha-level methods that don't have
a corresponding DBIC relationship.

To test:
1. Run:
   $ prove t/Koha/REST/Plugin/Query.t
   => SUCCESS
2. Run:
   $ prove t/db_dependent/Koha/Object.t
   => SUCCESS
3. Run:
   $ prove t/db_dependent/Koha/REST/Plugin/Objects.t
   => SUCCESS
4. Run:
   $ prove -r t/db_dependent/api/v1
   => SUCCESS

Signed-off-by: Tomás Cohen Arazi <[email protected]>

-- 
You are receiving this mail because:
You are watching all bug changes.
_______________________________________________
Koha-bugs mailing list
[email protected]
https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-bugs
website : http://www.koha-community.org/
git : http://git.koha-community.org/
bugs : http://bugs.koha-community.org/

Reply via email to