From 1de187c1a0bcbe7fda35bbdca040c19bd45a8dba Mon Sep 17 00:00:00 2001 From: Mike Rylander Date: Fri, 8 Mar 2013 14:26:17 -0500 Subject: [PATCH] Retain deleted record metadata and provide a #deleted QP modifier Signed-off-by: Mike Rylander --- .../lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm | 9 ++++++++- Open-ILS/src/sql/Pg/030.schema.metabib.sql | 5 +++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm index 57558e5750..f87260c4a7 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm @@ -657,6 +657,7 @@ __PACKAGE__->add_search_filter( 'superpage_size' ); __PACKAGE__->add_search_filter( 'estimation_strategy' ); __PACKAGE__->add_search_modifier( 'available' ); __PACKAGE__->add_search_modifier( 'staff' ); +__PACKAGE__->add_search_modifier( 'deleted' ); __PACKAGE__->add_search_modifier( 'lucky' ); # Start from container data (bre, acn, acp): container(bre,bookbag,123,deadb33fdeadb33fdeadb33fdeadb33f) @@ -863,11 +864,17 @@ sub toSQL { # Limit stuff my $limit_where = <<" SQL"; -- Filter records based on visibility + AND NOT bre.deleted AND ( cbs.transcendant IS TRUE OR SQL - if ($self->find_modifier('staff')) { + + if ($self->find_modifier('deleted')) { + $limit_where = <<" SQL"; + AND bre.deleted + SQL + } elsif ($self->find_modifier('staff')) { $limit_where .= <<" SQL"; EXISTS( SELECT 1 FROM asset.call_number cn diff --git a/Open-ILS/src/sql/Pg/030.schema.metabib.sql b/Open-ILS/src/sql/Pg/030.schema.metabib.sql index 6d96938972..2eb9f9e25b 100644 --- a/Open-ILS/src/sql/Pg/030.schema.metabib.sql +++ b/Open-ILS/src/sql/Pg/030.schema.metabib.sql @@ -1173,8 +1173,9 @@ DECLARE BEGIN IF NEW.deleted IS TRUE THEN -- If this bib is deleted - DELETE FROM metabib.metarecord_source_map WHERE source = NEW.id; -- Rid ourselves of the search-estimate-killing linkage - DELETE FROM metabib.record_attr WHERE id = NEW.id; -- Kill the attrs hash, useless on deleted records + -- XXX we need to keep these around to support searches with the #deleted modifier + -- DELETE FROM metabib.metarecord_source_map WHERE source = NEW.id; -- Rid ourselves of the search-estimate-killing linkage + -- DELETE FROM metabib.record_attr WHERE id = NEW.id; -- Kill the attrs hash, useless on deleted records DELETE FROM authority.bib_linking WHERE bib = NEW.id; -- Avoid updating fields in bibs that are no longer visible DELETE FROM biblio.peer_bib_copy_map WHERE peer_record = NEW.id; -- Separate any multi-homed items DELETE FROM metabib.browse_entry_def_map WHERE source = NEW.id; -- Don't auto-suggest deleted bibs -- 2.11.0