88import org .jabref .logic .search .indexing .BibFieldsIndexer ;
99import org .jabref .model .entry .field .InternalField ;
1010import org .jabref .model .entry .field .StandardField ;
11+ import org .jabref .model .search .PostgreConstants ;
1112import org .jabref .search .SearchBaseVisitor ;
1213import org .jabref .search .SearchParser ;
1314
1819import static org .jabref .model .search .PostgreConstants .FIELD_NAME ;
1920import static org .jabref .model .search .PostgreConstants .FIELD_VALUE_LITERAL ;
2021import static org .jabref .model .search .PostgreConstants .FIELD_VALUE_TRANSFORMED ;
21- import static org .jabref .model .search .PostgreConstants .SPLIT_TABLE_SUFFIX ;
2222
2323/**
2424 * Converts to a query processable by the scheme created by {@link BibFieldsIndexer}.
@@ -38,9 +38,9 @@ public class SearchToSqlVisitor extends SearchBaseVisitor<String> {
3838 private final List <String > ctes = new ArrayList <>();
3939 private int cteCounter = 0 ;
4040
41- public SearchToSqlVisitor (String mainTableName ) {
42- this .mainTableName = mainTableName ;
43- this .splitValuesTableName = mainTableName + SPLIT_TABLE_SUFFIX ;
41+ public SearchToSqlVisitor (String table ) {
42+ this .mainTableName = PostgreConstants . getMainTableSchemaReference ( table ) ;
43+ this .splitValuesTableName = PostgreConstants . getSplitTableSchemaReference ( table ) ;
4444 }
4545
4646 private enum SearchTermFlag {
@@ -73,7 +73,7 @@ public String visitUnaryExpression(SearchParser.UnaryExpressionContext ctx) {
7373 String cte = """
7474 cte%d AS (
7575 SELECT %s.%s
76- FROM "%s" AS %s
76+ FROM %s AS %s
7777 WHERE %s.%s NOT IN (
7878 SELECT %s
7979 FROM %s
@@ -223,7 +223,7 @@ private String buildContainsFieldQuery(String field, String operator, String pre
223223 return """
224224 cte%d AS (
225225 SELECT %s.%s
226- FROM "%s" AS %s
226+ FROM %s AS %s
227227 WHERE (%s.%s = '%s') AND ((%s.%s %s '%s%s%s') OR (%s.%s %s '%s%s%s'))
228228 )
229229 """ .formatted (
@@ -244,10 +244,10 @@ private String buildContainsNegationFieldQuery(String field, String operator, St
244244 return """
245245 cte%d AS (
246246 SELECT %s.%s
247- FROM "%s" AS %s
247+ FROM %s AS %s
248248 WHERE %s.%s NOT IN (
249249 SELECT %s.%s
250- FROM "%s" AS %s
250+ FROM %s AS %s
251251 WHERE (%s.%s = '%s') AND ((%s.%s %s '%s%s%s') OR (%s.%s %s '%s%s%s'))
252252 )
253253 )
@@ -272,8 +272,8 @@ private String buildExactFieldQuery(String field, String operator, String term)
272272 return """
273273 cte%d AS (
274274 SELECT %s.%s
275- FROM "%s" AS %s
276- LEFT JOIN "%s" AS %s
275+ FROM %s AS %s
276+ LEFT JOIN %s AS %s
277277 ON (%s.%s = %s.%s AND %s.%s = %s.%s)
278278 WHERE (
279279 (%s.%s = '%s') AND ((%s.%s %s '%s') OR (%s.%s %s '%s'))
@@ -300,11 +300,11 @@ private String buildExactNegationFieldQuery(String field, String operator, Strin
300300 return """
301301 cte%d AS (
302302 SELECT %s.%s
303- FROM "%s" AS %s
303+ FROM %s AS %s
304304 WHERE %s.%s NOT IN (
305305 SELECT %s.%s
306- FROM "%s" AS %s
307- LEFT JOIN "%s" AS %s
306+ FROM %s AS %s
307+ LEFT JOIN %s AS %s
308308 ON (%s.%s = %s.%s AND %s.%s = %s.%s)
309309 WHERE (
310310 (%s.%s = '%s') AND ((%s.%s %s '%s') OR (%s.%s %s '%s'))
@@ -335,7 +335,7 @@ private String buildContainsAnyFieldQuery(String operator, String prefixSuffix,
335335 return """
336336 cte%d AS (
337337 SELECT %s.%s
338- FROM "%s" AS %s
338+ FROM %s AS %s
339339 WHERE ((%s.%s %s '%s%s%s') OR (%s.%s %s '%s%s%s'))
340340 )
341341 """ .formatted (
@@ -354,8 +354,8 @@ private String buildExactAnyFieldQuery(String operator, String term) {
354354 return """
355355 cte%d AS (
356356 SELECT %s.%s
357- FROM "%s" AS %s
358- LEFT JOIN "%s" AS %s
357+ FROM %s AS %s
358+ LEFT JOIN %s AS %s
359359 ON (%s.%s = %s.%s AND %s.%s = %s.%s)
360360 WHERE (
361361 (%s.%s %s '%s') OR (%s.%s %s '%s')
@@ -380,11 +380,11 @@ private String buildExactNegationAnyFieldQuery(String operator, String term) {
380380 return """
381381 cte%d AS (
382382 SELECT %s.%s
383- FROM "%s" AS %s
383+ FROM %s AS %s
384384 WHERE %s.%s NOT IN (
385385 SELECT %s.%s
386- FROM "%s" AS %s
387- LEFT JOIN "%s" AS %s
386+ FROM %s AS %s
387+ LEFT JOIN %s AS %s
388388 ON (%s.%s = %s.%s AND %s.%s = %s.%s)
389389 WHERE (
390390 (%s.%s %s '%s') OR (%s.%s %s '%s')
@@ -413,10 +413,10 @@ private String buildContainsNegationAnyFieldQuery(String operator, String prefix
413413 return """
414414 cte%d AS (
415415 SELECT %s.%s
416- FROM "%s" AS %s
416+ FROM %s AS %s
417417 WHERE %s.%s NOT IN (
418418 SELECT %s.%s
419- FROM "%s" AS %s
419+ FROM %s AS %s
420420 WHERE ((%s.%s %s '%s%s%s') OR (%s.%s %s '%s%s%s'))
421421 )
422422 )
0 commit comments