[open-ils-commits] [GIT] Evergreen ILS branch rel_2_11 updated. 55bf52cb84be826cd167db288fff298216f944c5
Evergreen Git
git at git.evergreen-ils.org
Wed Dec 21 17:11:32 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_11 has been updated
via 55bf52cb84be826cd167db288fff298216f944c5 (commit)
from ad022e3ea5a55c363bb688068c2ad22d7e0a51c7 (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 55bf52cb84be826cd167db288fff298216f944c5
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>
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 4be8e93..4c386e5 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
@@ -980,7 +980,7 @@ sub toSQL {
$with
SELECT $key AS id,
$agg_records,
- ${rel}::NUMERIC AS rel,
+ (${rel})::NUMERIC AS rel,
$rank AS rank,
FIRST(pubdate_t.value) AS tie_break,
STRING_AGG(ARRAY_TO_STRING(pop_with.badges,','),',') AS badges,
-----------------------------------------------------------------------
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