bug 605921: fix bib search hang on queries like "title ; subtitle"
authorgmc <gmc@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 15 Jul 2010 15:15:43 +0000 (15:15 +0000)
committergmc <gmc@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 15 Jul 2010 15:15:43 +0000 (15:15 +0000)
More generally, the fix avoids a to_tsquery exception in cases
where a search term is normalized away to the empty string.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
git-svn-id: svn://svn.open-ils.org/ILS/trunk@16939 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm

index 02e54f4..cbff570 100644 (file)
@@ -778,7 +778,7 @@ sub buildSQL {
     my $suffix_op = ":$suffix" if $suffix;
     my $suffix_after = "|| '$suffix_op'" if $suffix;
 
-    $sql = "to_tsquery('$classname', $prefix '(' || btrim(regexp_replace($sql,E'(?:\\\\s+|:)','$suffix_op&','g'),'&|') $suffix_after || ')')";
+    $sql = "to_tsquery('$classname', COALESCE(NULLIF($prefix '(' || btrim(regexp_replace($sql,E'(?:\\\\s+|:)','$suffix_op&','g'),'&|') $suffix_after || ')', '()'), ''))";
 
     return $self->sql($sql);
 }