QP: Limit to deleted records for #deleted modifier at this level
authorLebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Wed, 17 Apr 2013 21:24:59 +0000 (17:24 -0400)
committerMike Rylander <mrylander@gmail.com>
Thu, 18 Apr 2013 19:43:34 +0000 (15:43 -0400)
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 <lebbeous@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm
Open-ILS/src/sql/Pg/upgrade/XXXX.schema.deleted-search-fts.sql

index d350eda..a1560ce 100644 (file)
@@ -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
index e44c0fc..f98c2a6 100644 (file)
@@ -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 (