Bug #1044721: QP handles explicit group+joiner badly collab/senator/bug_1044721_signoff
authorJared Camins-Esakov <jcamins@cpbibliography.com>
Sat, 1 Sep 2012 14:21:51 +0000 (10:21 -0400)
committerLebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Tue, 4 Sep 2012 20:15:29 +0000 (16:15 -0400)
commit170d57234a518e605b2a3745b32d4ddb4c6b6268
treef88b48be037f5a2609854ac3411f3de677c4a6c0
parent3480ea1fb4685849bbf70f9c8a627ea61e62838d
Bug #1044721: QP handles explicit group+joiner badly

Although the following four queries should be equivalent:
  george  ||  fred
 (george) ||  fred
  george  || (fred)
 (george) || (fred)

The Pg QueryParser driver generates SQL queries that return different
numbers of results for each of those queries, with all desired results
appearing only with the first query. This seems to be because of the way
filters are added in the interface.

This patch adjusts the Search code in TPAC to add an explicit group
around the user-entered query, which enables the Pg QueryParser driver
to handle all four of the above queries properly.

This patch should also resolve the problems encountered with the patch
for bug #1040740, "Implicit ANDs should have higher precedence than
explicit ORs"

Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Search.pm