[open-ils-commits] [GIT] Evergreen ILS branch rel_2_10 updated. 0382522b2b87679d365bf9000ea40d7fdf8ca1c0

Evergreen Git git at git.evergreen-ils.org
Wed Dec 21 17:13:21 EST 2016


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".

The branch, rel_2_10 has been updated
       via  0382522b2b87679d365bf9000ea40d7fdf8ca1c0 (commit)
      from  72aaaa32ffa3be9b6cbda8bf5276244e9f485222 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 0382522b2b87679d365bf9000ea40d7fdf8ca1c0
Author: Galen Charlton <gmc at esilibrary.com>
Date:   Wed Dec 21 16:32:26 2016 -0500

    LP#1651808: avoid a class of intermittent search failures
    
    This patch fixes a bug where catalog searches can sometimes fail
    with a PostgreSQL error that looks like this:
    
    ERROR: type of parameter 56 (double precision) does not match that when preparing the plan (numeric)
    CONTEXT: PL/pgSQL function search.query_parser_fts(integer,integer,text,integer[],integer[],integer,integer,integer,boolean,boolean,boolean,integer) line 319 at assignment
    
    In particular, it ensures that the relevance values are coerced
    to the Pg NUMERIC data type regardless of how the core query is
    constructed; otherwise, it can sometimes end up as a double
    precision value.  Because of how Pg backends cache query plans,
    that change of type can result in the error above.
    
    To test
    -------
    [1] (Optional) Configure the max_children values for open-ils.storage
        to permit only one drone, which in turn forces all catalog
        search requests to go through a single Pg backend.
    [2] Set the default_preferred_language_weight opensrf.xml setting
        to 0.
    [3] Perform a catalog search that has just a filter, e.g.,
        item_lang(eng).
    [4] Perform a catalog search that includes search term, e.g.,
        cats
    [5] The second search should fail.
    [6] Apply the patch and try steps 3 and 4 again; this time, both
        searches should work.
    
    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
    Signed-off-by: Mike Rylander <mrylander at gmail.com>
    
    Conflicts:
    	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm

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 ea55769..6ce6fe2 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
@@ -875,7 +875,7 @@ sub toSQL {
 $with
 SELECT  $key AS id,
         $agg_records,
-        $rel AS rel,
+        (${rel})::NUMERIC AS rel,
         $rank AS rank, 
         FIRST(pubdate_t.value) AS tie_break
   FROM  metabib.metarecord_source_map m

-----------------------------------------------------------------------

Summary of changes:
 .../Application/Storage/Driver/Pg/QueryParser.pm   |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)


hooks/post-receive
-- 
Evergreen ILS


More information about the open-ils-commits mailing list