Koha-clms/C4
Janusz Kaczmarek 317b70b7b6
Bug 34739: Linked biblios should not be merged (updated) when changes to an authority don't change the authorized heading
Currently, the function C4::AuthoritiesMarc::merge calls ModBiblio for
all bibliographic records linked to the modified authority record.  It
could seem a just behavior but we know that this could lead to
performance problems.  This is why AuthorityMergeLimit
systempreference with merge_authorities.pl was introduced (earlier:
dontmerge).

Although this partially solves the performance problems, for
moderately large and large catalogs (500+ K) and authority records
linked with a large number of bibliographic records, performance
problems still occur, even with overnight processing with
merge_authorities.pl.  This problem is particularly apparent when
updating authority records from central databases, whose modifications
are beyond our control.

It turns out, however, that many such modifications to authority
records involve fields other than the heading field (1XX in MARC 21),
so these updates in fact do not modify bibliographic records.
However, with the current merge function, every touch on an
authority record forces a call to the ModBiblio function.  The
number of relatively expensive ModBiblio calls could be
reduced by checking whether there has been an actual change in
the field associated with the authority record.

However, with IncludeSeeFromInSearches or IncludeSeeAlsoFromInSearches
preferences enabled, the record should be refreshed in the search
engine just in case (should the 4XX, 5XX fields have changed, which we
don't know at this point).

Test plan:
==========
1. Make sure to have CataloguingLog set to Log and
   IncludeSeeFromInSearches set to Include.
2. Have a bibliographic record with an authority record linked. Open
   the authority record in a separate tab, open it in the editor and
   save, without modifying it. Repeat this 2-3 times. In the
   bibliographic record tab open the Modification log and see a number of
   entries - for each “empty” modification of the linked authority
   record.
3. Apply the patch ; restart_all.
4. Repat p. 2. Note that there are no new entries in the log.
5. Edit the authority record again, this time putting in one of the
   proper 4XX $a subfield an uncommon word (but do not  touch the 1XX
   field). Save the authority record. In the bibliographic record
   tab control that there are no new entries in the modification log.
   Make a search for the word put in 4XX field. You should get the
   bibliographic record(s) linked to the edited authority record, even
   though the bibliographic record itself has not been modified.
6. Edit the authority record again, this time changing the 1XX field.
   Save the authority record. In the bibliographic record tab control
   that there are is new entry in the modification log.

Sponsored-by: Ignatianum University in Cracow
Signed-off-by: Roman Dolny <roman.dolny@jezuici.pl>
Signed-off-by: Thomas Klausner <domm@plix.at>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
2025-04-11 09:52:34 +02:00
..
AuthoritiesMarc Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Barcodes Bug 19113: Barcode value builder not working with numeric branchcode 2025-02-17 15:06:03 +01:00
ClassSortRoutine Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
ClassSplitRoutine Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Creators Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
External Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Form Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Heading Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
ILSDI Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Installer Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Labels Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Linker Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Members Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
OAI Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Output Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Patroncards Bug 39295: Prevent infinite loop on line wrapping 2025-03-17 08:21:22 +01:00
Reports Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
SIP Bug 38615: Add ability to set hold cancellation request via SIP 2025-03-17 08:21:26 +01:00
Search Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Serials Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Utils/DataTables Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Accounts.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Acquisition.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Auth.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Auth_cas_servers.yaml.sample Bug 17065 - Rename C4/Auth_cas_servers.yaml.orig 2016-08-08 13:16:36 +00:00
Auth_with_cas.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Auth_with_ldap.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Auth_with_shibboleth.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
AuthoritiesMarc.pm Bug 34739: Linked biblios should not be merged (updated) when changes to an authority don't change the authorized heading 2025-04-11 09:52:34 +02:00
Barcodes.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Biblio.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Breeding.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Budgets.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Calendar.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Charset.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Circulation.pm Bug 39313: Make OpacTrustedCheckout self-checkout modal accept valid barcode 2025-03-17 08:21:18 +01:00
ClassSortRoutine.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
ClassSource.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
ClassSplitRoutine.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Context.pm Bug 36081: Use multivalue_preference 2025-03-06 13:54:36 +01:00
Contract.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
CourseReserves.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Creators.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
HTML5Media.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Heading.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
HoldsQueue.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
ImportBatch.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
ImportExportFramework.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
InstallAuth.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Installer.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
ItemCirculationAlertPreference.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Items.pm Bug 39299: Fix cataloguing plugins in serial item editor 2025-03-13 10:29:18 +01:00
Koha.pm Bug 39159: Remove useless autouse line 2025-03-07 15:41:16 +01:00
Labels.pm Bug 21395: Make perlcritic happy 2020-06-29 12:37:02 +02:00
Languages.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Letters.pm Bug 37989: Add template toolkit to problem_report notice 2025-02-26 13:45:47 +01:00
Linker.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Log.pm Bug 37944: Log object delete as JSON diff, implement for items 2024-10-30 11:57:25 +01:00
MarcModificationTemplates.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Matcher.pm Bug 39070: Don't request facets when searching for recrod matches 2025-02-13 16:17:58 +01:00
Members.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Message.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Output.pm Bug 28453: (follow-up) Make pagination labels translatable 2025-02-18 10:55:30 +01:00
Overdues.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Patroncards.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Record.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Reports.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Reserves.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Ris.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
RotatingCollections.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
SMS.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Scheduler.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Scrubber.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Search.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Serials.pm Bug 37171: Add serial note to serial claims screen 2025-03-19 11:55:31 +01:00
Service.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
ShelfBrowser.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
SocialData.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Stats.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Suggestions.pm Bug 38235: Suggestion confirmation letter sent when it should not 2024-11-12 17:50:18 +01:00
TTParser.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Tags.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
Templates.pm Bug 38467: Make uri and url filters rfc3986 when using C4::Template 2025-03-06 13:54:42 +01:00
TmplToken.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
TmplTokenType.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
UsageStats.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
XISBN.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00
XSLT.pm Bug 38664: Tidy the whole codebase 2025-02-11 14:58:24 +01:00