https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43125 Bug ID: 43125 Summary: Rewrite FixPriority to use a single bulk UPDATE instead of per-hold updates Initiative type: --- Sponsorship --- status: Product: Koha Version: Main Hardware: All OS: All Status: NEW Severity: enhancement Priority: P5 - low Component: Hold requests Assignee: koha-bugs@lists.koha-community.org Reporter: martin.renvoize@openfifth.co.uk QA Contact: testopia@bugs.koha-community.org CC: gmcharlt@gmail.com, lisette@bywatersolutions.com, tomascohen@gmail.com Blocks: 43123 Target Milestone: --- C4::Reserves::FixPriority currently issues one UPDATE reserves SET priority = ? per non-captured hold on a biblio, on every hold create, cancel or fill. A popular title with 50 queued holds generates 50 individual UPDATE statements on every state change. The function carries its own FIXME comment noting it needs to be rewritten. Replace the per-hold UPDATE loop with a single bulk UPDATE (for example using UPDATE ... CASE WHEN reserve_id IN (...) THEN ... END, or an equivalent bulk statement), preserving the existing priority ordering semantics exactly. This bug is independent of the REST API and Vue work and can be delivered on its own. Test plan 1. Run t/db_dependent/Reserves.t and confirm all FixPriority related tests pass unchanged. 2. Add a test with a large number of queued holds (50+) and assert the resulting priority values match the pre-patch behaviour. 3. Confirm the number of UPDATE statements issued no longer scales with the number of queued holds. Referenced Bugs: https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43123 [Bug 43123] Hold placement workflow: Vue modernisation (epic) -- You are receiving this mail because: You are the assignee for the bug. You are watching all bug changes.