[open-ils-commits] [GIT] Evergreen ILS branch master updated. f366eaeed22bdf54b5927e3b9beaea0ccc87216b
Evergreen Git
git at git.evergreen-ils.org
Fri Feb 24 13:40:34 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, master has been updated
via f366eaeed22bdf54b5927e3b9beaea0ccc87216b (commit)
from 43f410302a2bcec8e905b7ec6d479c25d4705988 (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 f366eaeed22bdf54b5927e3b9beaea0ccc87216b
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/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm
index 8affc65..c38f574 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
@@ -28,7 +28,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);
@@ -693,13 +693,13 @@ sub rel_bump {
return '' if (!@$only_atoms);
if ($bump eq 'first_word') {
- return " /* first_word */ COALESCE(NULLIF( (search_normalize(".$node->table_alias.".value) ~ ('^'||search_normalize(".$self->QueryParser->quote_value($only_atoms->[0]->content)."))), FALSE )::INT * $multiplier, 1)";
+ return " /* first_word */ COALESCE(NULLIF( (search_normalize(".$node->table_alias.".value) ~ ('^'||search_normalize(".$self->QueryParser->quote_phrase_value($only_atoms->[0]->content)."))), FALSE )::INT * $multiplier, 1)";
} elsif ($bump eq 'full_match') {
return " /* full_match */ COALESCE(NULLIF( (search_normalize(".$node->table_alias.".value) ~ ('^'||".
- join( "||' '||", map { "search_normalize(".$self->QueryParser->quote_value($_->content).")" } @$only_atoms )."||'\$')), FALSE )::INT * $multiplier, 1)";
+ join( "||' '||", map { "search_normalize(".$self->QueryParser->quote_phrase_value($_->content).")" } @$only_atoms )."||'\$')), FALSE )::INT * $multiplier, 1)";
} elsif ($bump eq 'word_order') {
return " /* word_order */ COALESCE(NULLIF( (search_normalize(".$node->table_alias.".value) ~ (".
- join( "||'.*'||", map { "search_normalize(".$self->QueryParser->quote_value($_->content).")" } @$only_atoms ).")), FALSE )::INT * $multiplier, 1)";
+ join( "||'.*'||", map { "search_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