egdb3_13_6
.metabib
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
indexing_delete(bib biblio.record_entry, extra text DEFAULT NULL::text)
Parameters
Name
Type
Mode
bib
biblio.record_entry
IN
extra
text
IN
Definition
DECLARE tmp_bool BOOL; diag_detail TEXT; diag_context TEXT; BEGIN PERFORM * FROM config.internal_flag WHERE name = 'ingest.metarecord_mapping.preserve_on_delete' AND enabled; tmp_bool := FOUND; PERFORM metabib.remap_metarecord_for_bib(bib.id, bib.fingerprint, TRUE, tmp_bool); IF NOT tmp_bool THEN -- One needs to keep these around to support searches -- with the #deleted modifier, so one should turn on the named -- internal flag for that functionality. DELETE FROM metabib.record_attr_vector_list WHERE source = bib.id; END IF; DELETE FROM authority.bib_linking abl WHERE abl.bib = bib.id; -- Avoid updating fields in bibs that are no longer visible DELETE FROM biblio.peer_bib_copy_map WHERE peer_record = bib.id; -- Separate any multi-homed items DELETE FROM metabib.browse_entry_def_map WHERE source = bib.id; -- Don't auto-suggest deleted bibs RETURN TRUE; EXCEPTION WHEN OTHERS THEN GET STACKED DIAGNOSTICS diag_detail = PG_EXCEPTION_DETAIL, diag_context = PG_EXCEPTION_CONTEXT; RAISE WARNING '%\n%', diag_detail, diag_context; RETURN FALSE; END;