Summary: | GetMemberDetails is unnecessarily called in CanBookBeRenewed | ||
---|---|---|---|
Product: | Koha | Reporter: | Jonathan Druart <jonathan.druart> |
Component: | Architecture, internals, and plumbing | Assignee: | Jonathan Druart <jonathan.druart> |
Status: | CLOSED FIXED | QA Contact: | Testopia <testopia> |
Severity: | enhancement | ||
Priority: | P5 - low | CC: | fridolin.somers, gmcharlt |
Version: | Main | ||
Hardware: | All | ||
OS: | All | ||
Change sponsored?: | --- | Patch complexity: | Small patch |
Documentation contact: | Documentation submission: | ||
Text to go in the release notes: | Version(s) released in: | ||
Attachments: |
Bug 11960: GetMemberDetails is unnecessarily called in CanBookBeRenewed
Bug 11960: GetMemberDetails is unnecessarily called in CanBookBeRenewed [SIGNED OFF] Bug 11960: GetMemberDetails is unnecessarily called in CanBookBeRenewed Bug 11960: GetMemberDetails is unnecessarily called in CanBookBeRenewed |
Description
Jonathan Druart
2014-03-19 15:38:05 UTC
Created attachment 26456 [details] [review] Bug 11960: GetMemberDetails is unnecessarily called in CanBookBeRenewed C4::Circulation::CanBookBeRenewed calls C4::Members::GetMemberDetails to retrieve categorycode and branchcode. - categorycode is used to retrieve the issuing rule - the borrower information is passed to C4::Circulation::_GetCircControlBranch. Which only uses the branchcode parameter. GetMemberDetails does a lot of useless calls/queries (patronflags, account, etc.). This call could be replaced with a call to C4::Members::GetMember. Note: I presented this small optimisation during a quick introduction to NYTProf (hackfest 14 in Marseille). Test plan: - launch member unit tests - check the code Created attachment 26459 [details] [review] Bug 11960: GetMemberDetails is unnecessarily called in CanBookBeRenewed C4::Circulation::CanBookBeRenewed calls C4::Members::GetMemberDetails to retrieve categorycode and branchcode. - categorycode is used to retrieve the issuing rule - the borrower information is passed to C4::Circulation::_GetCircControlBranch. Which only uses the branchcode parameter. GetMemberDetails does a lot of useless calls/queries (patronflags, account, etc.). This call could be replaced with a call to C4::Members::GetMember. Note: I presented this small optimisation during a quick introduction to NYTProf (hackfest 14 in Marseille). Test plan: - launch member unit tests - check the code Created attachment 26479 [details] [review] [SIGNED OFF] Bug 11960: GetMemberDetails is unnecessarily called in CanBookBeRenewed C4::Circulation::CanBookBeRenewed calls C4::Members::GetMemberDetails to retrieve categorycode and branchcode. - categorycode is used to retrieve the issuing rule - the borrower information is passed to C4::Circulation::_GetCircControlBranch. Which only uses the branchcode parameter. GetMemberDetails does a lot of useless calls/queries (patronflags, account, etc.). This call could be replaced with a call to C4::Members::GetMember. Note: I presented this small optimisation during a quick introduction to NYTProf (hackfest 14 in Marseille). Test plan: - launch member unit tests - check the code Checking the code resulted in the following: CanBookBeRenewed builds a hash reference from the borrowernumber (2482). Note it is only used in this function and not passed in. _GetCircControlBranch (2485) requires that hashreference to have a branchcode key. As stated above. The following line (2486) requires it have a categorycode key. As such, C4::Members::GetMemberDetails is confirmed to be overkill, and C4::Members::GetMember is sufficient. Testing Done ------------ 0) Back up DB 1) Make sure MPL is in the list of libraries. 2) Apply the patch. 3) run the koha qa test tool 4) prove -v t/db_dependent/Circulation.t Patch applies cleanly. QA Test tool was all OK. All tests ran successfully. Signed-off-by: Mark Tompsett <mtompset@hotmail.com> Created attachment 27026 [details] [review] Bug 11960: GetMemberDetails is unnecessarily called in CanBookBeRenewed C4::Circulation::CanBookBeRenewed calls C4::Members::GetMemberDetails to retrieve categorycode and branchcode. - categorycode is used to retrieve the issuing rule - the borrower information is passed to C4::Circulation::_GetCircControlBranch. Which only uses the branchcode parameter. GetMemberDetails does a lot of useless calls/queries (patronflags, account, etc.). This call could be replaced with a call to C4::Members::GetMember. Note: I presented this small optimisation during a quick introduction to NYTProf (hackfest 14 in Marseille). Test plan: - launch member unit tests - check the code Checking the code resulted in the following: CanBookBeRenewed builds a hash reference from the borrowernumber (2482). Note it is only used in this function and not passed in. _GetCircControlBranch (2485) requires that hashreference to have a branchcode key. As stated above. The following line (2486) requires it have a categorycode key. As such, C4::Members::GetMemberDetails is confirmed to be overkill, and C4::Members::GetMember is sufficient. Testing Done ------------ 0) Back up DB 1) Make sure MPL is in the list of libraries. 2) Apply the patch. 3) run the koha qa test tool 4) prove -v t/db_dependent/Circulation.t Patch applies cleanly. QA Test tool was all OK. All tests ran successfully. Signed-off-by: Mark Tompsett <mtompset@hotmail.com> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Pushed to master. Thanks, Jonathan! Pushed to 3.14.x, will be in 3.14.10 |