Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,16 @@ public SqlQueryNode visitComparison(SearchParser.ComparisonContext ctx) {
setFlags(searchFlags, REGULAR_EXPRESSION, true, true);
}

// field = "" -> should find entries where the field is empty
// field != "" -> should find entries where the field is not empty
if (term.isEmpty()) {
if (searchFlags.contains(NEGATION)) {
searchFlags.remove(NEGATION);
} else {
searchFlags.add(NEGATION);
}
}

return getFieldQueryNode(field.toLowerCase(Locale.ROOT), term, searchFlags);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -695,6 +695,38 @@ cte0 AS (
)
)
SELECT * FROM cte0 GROUP BY entryid"""
),

Arguments.of(
"file = \"\"",
"""
WITH
cte0 AS (
SELECT main_table.entryid
FROM bib_fields."tableName" AS main_table
WHERE main_table.entryid NOT IN (
SELECT inner_table.entryid
FROM bib_fields."tableName" AS inner_table
WHERE (
(inner_table.field_name = 'file') AND ((inner_table.field_value_literal ILIKE ('%%')) OR (inner_table.field_value_transformed ILIKE ('%%')))
)
)
)
SELECT * FROM cte0 GROUP BY entryid"""
),

Arguments.of(
"file != \"\"",
"""
WITH
cte0 AS (
SELECT main_table.entryid
FROM bib_fields."tableName" AS main_table
WHERE (
(main_table.field_name = 'file') AND ((main_table.field_value_literal ILIKE ('%%')) OR (main_table.field_value_transformed ILIKE ('%%')))
)
)
SELECT * FROM cte0 GROUP BY entryid"""
)
);
}
Expand Down