https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=42873
Bug ID: 42873
Summary: Add a faster MARCXML decoder (MARC::File::XML::Fast)
for reading records
Initiative type: ---
Sponsorship ---
status:
Product: Koha
Version: Main
Hardware: All
OS: All
Status: NEW
Severity: enhancement
Priority: P5 - low
Component: Architecture, internals, and plumbing
Assignee: [email protected]
Reporter: [email protected]
QA Contact: [email protected]
Target Milestone: ---
This adds a faster path for decoding the MARCXML stored in biblio_metadata into
MARC::Record objects, used when reading bibliographic records.
Koha re-parses stored MARCXML on every read via MARC::Record::new_from_xml,
which builds a full DOM and runs MARC::Field->new validation for every field.
For records that were already validated when stored (bug 35104), that
validation is redundant.
A new module, MARC::File::XML::Fast, decodes MARCXML with a streaming
XML::LibXML::Reader and builds MARC::Field objects by direct bless, skipping
the
per-field validation. Output is byte-identical to new_from_xml for well-formed
UTF-8 MARCXML; malformed input falls back to new_from_xml so a record can never
become un-decodable.
The module is bundled under lib/ (like WebService::ILS) and is maintained as a
standalone CPAN distribution. Koha::Biblio::Metadata->record uses it when the
new UseFastMARCDecode system preference is enabled (default on).
Depends on bug 35104, which guarantees stored metadata is valid MARCXML.
Test plan:
1. Apply the patches, run updatedatabase and restart_all.
2. prove t/MARC/File/XML/Fast.t
3. prove t/db_dependent/Koha/Biblio/Metadata.t
4. Administration > System preferences: confirm UseFastMARCDecode exists under
Cataloging > Record structure and defaults to "Use".
5. Browse several biblio detail pages; records display correctly.
6. Set UseFastMARCDecode to "Don't use"; confirm pages render identically.
--
You are receiving this mail because:
You are the assignee for the bug.
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/