From ca4444c9a3b14683c88b1685f8b61e9793ea9264 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon, 4 May 2026 08:50:15 -0700 Subject: [PATCH] Fix (dev): return empty list for non-positive search limit (#12703) --- src/documents/search/_backend.py | 2 ++ src/documents/tests/search/test_backend.py | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/src/documents/search/_backend.py b/src/documents/search/_backend.py index 8c745dfd7..cd2ab031c 100644 --- a/src/documents/search/_backend.py +++ b/src/documents/search/_backend.py @@ -681,6 +681,8 @@ class TantivyBackend: searcher = self._index.searcher() effective_limit = limit if limit is not None else searcher.num_docs + if effective_limit <= 0: + return [] if sort_field and sort_field in self.SORT_FIELD_MAP: mapped_field = self.SORT_FIELD_MAP[sort_field] diff --git a/src/documents/tests/search/test_backend.py b/src/documents/tests/search/test_backend.py index 5c63e0cee..08057a936 100644 --- a/src/documents/tests/search/test_backend.py +++ b/src/documents/tests/search/test_backend.py @@ -40,6 +40,10 @@ class TestWriteBatch: class TestSearch: """Test search query parsing and matching via search_ids.""" + def test_empty_index_returns_no_ids(self, backend: TantivyBackend) -> None: + """Empty indexes must not pass a zero limit to Tantivy.""" + assert backend.search_ids("missing", user=None) == [] + def test_text_mode_limits_default_search_to_title_and_content( self, backend: TantivyBackend,