[open-ils-commits] [GIT] Evergreen ILS branch rel_2_0 updated. 44bd6367fa8bc8e0283954ace17c7f1555035eb2
Evergreen Git
git at git.evergreen-ils.org
Fri Feb 24 13:47:42 EST 2012
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_0 has been updated
via 44bd6367fa8bc8e0283954ace17c7f1555035eb2 (commit)
from eb1df70a651b0de65ed3d2bd76b29958b47d6262 (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 44bd6367fa8bc8e0283954ace17c7f1555035eb2
Author: Mike Rylander <mrylander at gmail.com>
Date: Fri Feb 24 13:40:06 2012 -0500
Correctly quote regexp-y characters in phrase quoting helper
There was one extra character that caused the use of quotemeta() to not
actually happen. This broke two things:
1) phrase searching when the phrase had certain special characters in it
-- test case: "c++"
2) use of relevance bumps in the same situation
Signed-off-by: Mike Rylander <mrylander at gmail.com>
diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm b/Open-ILS/src/perlmods/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm
index c1fb759..05159d9 100644
--- a/Open-ILS/src/perlmods/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm
+++ b/Open-ILS/src/perlmods/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm
@@ -25,7 +25,7 @@ sub quote_phrase_value {
my $right_anchored = $value =~ m/\$$/;
$value =~ s/\^// if $left_anchored;
$value =~ s/\$$// if $right_anchored;
- $value =~ quotemeta($value);
+ $value = quotemeta($value);
$value = '^' . $value if $left_anchored;
$value = "$value\$" if $right_anchored;
return $self->quote_value($value);
@@ -573,13 +573,13 @@ sub rel_bump {
return '' if (!@$only_atoms);
if ($bump eq 'first_word') {
- return " /* first_word */ COALESCE(NULLIF( (naco_normalize(".$node->table_alias.".value) ~ ('^'||naco_normalize(".$self->QueryParser->quote_value($only_atoms->[0]->content)."))), FALSE )::INT * $multiplier, 1)";
+ return " /* first_word */ COALESCE(NULLIF( (naco_normalize(".$node->table_alias.".value) ~ ('^'||naco_normalize(".$self->QueryParser->quote_phrase_value($only_atoms->[0]->content)."))), FALSE )::INT * $multiplier, 1)";
} elsif ($bump eq 'full_match') {
return " /* full_match */ COALESCE(NULLIF( (naco_normalize(".$node->table_alias.".value) ~ ('^'||".
- join( "||' '||", map { "naco_normalize(".$self->QueryParser->quote_value($_->content).")" } @$only_atoms )."||'\$')), FALSE )::INT * $multiplier, 1)";
+ join( "||' '||", map { "naco_normalize(".$self->QueryParser->quote_phrase_value($_->content).")" } @$only_atoms )."||'\$')), FALSE )::INT * $multiplier, 1)";
} elsif ($bump eq 'word_order') {
return " /* word_order */ COALESCE(NULLIF( (naco_normalize(".$node->table_alias.".value) ~ (".
- join( "||'.*'||", map { "naco_normalize(".$self->QueryParser->quote_value($_->content).")" } @$only_atoms ).")), FALSE )::INT * $multiplier, 1)";
+ join( "||'.*'||", map { "naco_normalize(".$self->QueryParser->quote_phrase_value($_->content).")" } @$only_atoms ).")), FALSE )::INT * $multiplier, 1)";
}
return '';
-----------------------------------------------------------------------
Summary of changes:
.../Application/Storage/Driver/Pg/QueryParser.pm | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
hooks/post-receive
--
Evergreen ILS
More information about the open-ils-commits
mailing list