From 58cdf67ae3a5787dfcf9f5b8e92aff83cf5855da Mon Sep 17 00:00:00 2001 From: Lebbeous Fogle-Weekley Date: Wed, 17 Apr 2013 17:24:59 -0400 Subject: [PATCH] QP: Limit to deleted records for #deleted modifier at this level Down in the DB's query_parser_fts procedure, we also know whether we're in a deleted_search, and in those cases we skip all visibility and similar testing accordingly. Signed-off-by: Lebbeous Fogle-Weekley Signed-off-by: Mike Rylander --- .../lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm | 4 ++++ .../src/sql/Pg/upgrade/XXXX.schema.deleted-search-fts.sql | 4 +--- 2 files changed, 5 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 d350eda2b4..a1560ce5b7 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 @@ -741,6 +741,9 @@ sub toSQL { $rel = "1.0/($rel)::NUMERIC"; my $mra_join = 'INNER JOIN metabib.record_attr mrd ON m.source = mrd.id'; + my $bre_join = $self->find_modifier('deleted') ? + 'INNER JOIN biblio.record_entry bre ON m.source = bre.id AND bre.deleted' : + ''; my $rank = $rel; @@ -792,6 +795,7 @@ SELECT $key AS id, FROM metabib.metarecord_source_map m $$flat_plan{from} $mra_join + $bre_join WHERE 1=1 $flat_where GROUP BY 1 diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.deleted-search-fts.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.deleted-search-fts.sql index e44c0fcd59..f98c2a694b 100644 --- a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.deleted-search-fts.sql +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.deleted-search-fts.sql @@ -1,11 +1,9 @@ BEGIN; --Check if we can apply the upgrade. -SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version); +--SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version); -CREATE TYPE search.search_result AS ( id BIGINT, rel NUMERIC, record INT, total INT, checked INT, visible INT, deleted INT, excluded INT ); -CREATE TYPE search.search_args AS ( id INT, field_class TEXT, field_name TEXT, table_alias TEXT, term TEXT, term_type TEXT ); CREATE OR REPLACE FUNCTION search.query_parser_fts ( -- 2.43.2