From ae77e555cb9efc11ef51fa240b14b62e357acfcf Mon Sep 17 00:00:00 2001 From: Jared Camins-Esakov Date: Fri, 7 Sep 2012 22:43:17 -0400 Subject: [PATCH] Make nodal groups explicit in canonical QP queries This patch is required to make the current unintuitive grouping around operators apparent. Without this patch, one test will pass on master that should not. Signed-off-by: Jared Camins-Esakov --- Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/QueryParser.pm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/QueryParser.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/QueryParser.pm index 7c66003cc9..c5c8ecebad 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/QueryParser.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/QueryParser.pm @@ -915,6 +915,7 @@ sub abstract_query2str_impl { $depth |= 0; my $qpconfig = $parser_config{QueryParser}; + my $isnode; my $gs = $qpconfig->{operators}{group_start}; my $ge = $qpconfig->{operators}{group_end}; @@ -933,6 +934,7 @@ sub abstract_query2str_impl { $q .= join(" ", map { _abstract_query2str_modifier($_) } @{$abstract_query->{modifiers}}) if exists $abstract_query->{modifiers}; } elsif ($abstract_query->{type} eq 'node') { + $isnode = 1; if ($abstract_query->{alias}) { $q .= " " . $abstract_query->{alias}; $q .= "|$_" foreach @{$abstract_query->{alias_fields}}; @@ -972,6 +974,8 @@ sub abstract_query2str_impl { } @{$abstract_query->{$op}} ); } + + $q = "($q)" if $isnode; $q .= " "; $q .= $ge if $abstract_query->{type} and $abstract_query->{type} eq "query_plan" and $depth; -- 2.11.0