feat(lapis): also allow multiple value in int, float and date filters (and concatenate them with or)#1626
Merged
fengelniederhammer merged 7 commits intomainfrom Apr 10, 2026
Conversation
…concatenate them with `or`)
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
or)or)
or)or)
Contributor
There was a problem hiding this comment.
Pull request overview
Adds multi-value exact-match support (logical OR semantics) for int, float, and date metadata filters in LAPIS—bringing them in line with existing multi-value behavior for string filters—and updates docs/tests accordingly.
Changes:
- Extend
int/float/dateexact-match filters to accept multiple values and map them to anOr(...)SILO filter expression (includingnullas “is missing”). - Update OpenAPI + template/docs + docs-site filter descriptions to reflect new multi-value capability.
- Add/adjust unit + e2e coverage for multi-value exact-match queries.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
lapis/src/main/kotlin/org/genspectrum/lapis/model/SiloFilterExpressionMapper.kt |
Implements OR-combination for multi-value exact-match int/float/date filters (including null). |
lapis/src/main/kotlin/org/genspectrum/lapis/openApi/OpenApiDocs.kt |
Updates filter schemas so int/float/date exact-match filters accept either a scalar or an array. |
lapis/src/main/resources/templates/llms.txt |
Updates end-user docs to describe array support for date/int/float exact matches. |
lapis/src/test/kotlin/org/genspectrum/lapis/model/SiloFilterExpressionMapperTest.kt |
Adjusts/extends unit test expectations for OR-wrapped exact-match expressions and new multi-value cases. |
lapis-e2e/test/aggregatedQueries/intEqualsMultiple.json |
New e2e aggregated-query fixture validating multi-value int equals behavior. |
lapis-e2e/test/aggregatedQueries/floatEqualsMultiple.json |
New e2e aggregated-query fixture validating multi-value float equals behavior. |
lapis-e2e/test/aggregatedQueries/dateEqualsMultiple.json |
New e2e aggregated-query fixture validating multi-value date equals behavior. |
lapis-e2e/test/aminoAcidSequence.spec.ts |
Updates an assertion to match a changed SILO error message wording. |
lapis-docs/src/components/FiltersTable/getFilters.tsx |
Updates docs-site filter descriptions to mention array/OR semantics. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| const errorResponse = await response.json(); | ||
| expect(errorResponse.error.detail).to.match( | ||
| /Error from SILO: The table does not contain the SequenceColumn 'unknownGene'/ | ||
| /Error from SILO: The table does not contain the field unknownGene/ |
Contributor
Author
There was a problem hiding this comment.
Unrelated to this PR, but SILO recently changed the error message in this case.
fhennig
approved these changes
Apr 8, 2026
Contributor
fhennig
left a comment
There was a problem hiding this comment.
LGTM, but the null documentation case seems worth attemting to fix.
fengelniederhammer
pushed a commit
that referenced
this pull request
Apr 10, 2026
🤖 I have created a release *beep* *boop* --- ## [0.8.1](v0.8.0...v0.8.1) (2026-04-10) ### Features * **lapis:** also allow multiple value in int, float and date filters (and concatenate them with `or`) ([#1626](#1626)) ([7e2736c](7e2736c)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
resolves #1595
int,float, anddateexact-match filters now accept an array of values, combining them with logical OR — the same behaviour already supported forstringfields.{ "age": [50, 51, 52] } { "qcValue": [0.95, 0.97, 0.8] } { "date": ["2021-05-08", "2021-01-20"] }nullis supported as an array element to filter for missing values. Range filters (*From/*To) are unchanged and still accept a single value only.PR Checklist
llms.txt.