From 9a35891a73d30964d0d8ccb62327c70a27f19416 Mon Sep 17 00:00:00 2001 From: Loay Ghreeb Date: Fri, 4 Oct 2024 20:47:01 +0300 Subject: [PATCH] Ignores groups field from default searches Fixes https://github.com/JabRef/jabref/issues/7996 --- .../search/query/SearchToSqlVisitor.java | 160 ++++++++++-------- 1 file changed, 90 insertions(+), 70 deletions(-) diff --git a/src/main/java/org/jabref/logic/search/query/SearchToSqlVisitor.java b/src/main/java/org/jabref/logic/search/query/SearchToSqlVisitor.java index 5f54170ee94..63592d2361f 100644 --- a/src/main/java/org/jabref/logic/search/query/SearchToSqlVisitor.java +++ b/src/main/java/org/jabref/logic/search/query/SearchToSqlVisitor.java @@ -29,6 +29,7 @@ /** * Converts to a query processable by the scheme created by {@link BibFieldsIndexer}. + * Tests are located in {@link org.jabref.logic.search.query.SearchQuerySQLConversionTest}. */ public class SearchToSqlVisitor extends SearchBaseVisitor { @@ -36,6 +37,7 @@ public class SearchToSqlVisitor extends SearchBaseVisitor { private static final String MAIN_TABLE = "main_table"; private static final String SPLIT_TABLE = "split_table"; private static final String INNER_TABLE = "inner_table"; + private static final String GROUPS_FIELD = StandardField.GROUPS.getName(); private final String mainTableName; private final String splitValuesTableName; @@ -70,12 +72,12 @@ public String visitUnaryExpression(SearchParser.UnaryExpressionContext ctx) { String subQuery = visit(ctx.expression()); String cte = """ cte%d AS ( - SELECT %s.%s - FROM %s AS %s - WHERE %s.%s NOT IN ( - SELECT %s - FROM %s - ) + SELECT %s.%s + FROM %s AS %s + WHERE %s.%s NOT IN ( + SELECT %s + FROM %s + ) ) """.formatted( cteCounter, @@ -96,11 +98,11 @@ public String visitBinaryExpression(SearchParser.BinaryExpressionContext ctx) { String cte = """ cte%d AS ( - SELECT %s - FROM %s - %s - SELECT %s - FROM %s + SELECT %s + FROM %s + %s + SELECT %s + FROM %s ) """.formatted( cteCounter, @@ -196,9 +198,9 @@ private String getFieldQueryNode(String field, String term, EnumSet