From 4a543396ae1850b43be37c8414b7c92502038f04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20Heglingeg=C3=A5rd?= <16125637+racerand@users.noreply.github.com> Date: Fri, 3 Jul 2026 02:38:29 +0300 Subject: [PATCH] fix: use optimized SQL when selecting non-hidden entries (#1240) --- src/tagstudio/core/library/alchemy/library.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/tagstudio/core/library/alchemy/library.py b/src/tagstudio/core/library/alchemy/library.py index d2035b58..d4b9cfac 100644 --- a/src/tagstudio/core/library/alchemy/library.py +++ b/src/tagstudio/core/library/alchemy/library.py @@ -1193,7 +1193,11 @@ class Library: ast = search.ast if not search.show_hidden_entries: - statement = statement.where(~Entry.tags.any(Tag.is_hidden)) + hidden_tag_ids = select(Tag.id).where(Tag.is_hidden) + hidden_entry_ids = select(TagEntry.entry_id).where( + TagEntry.tag_id.in_(hidden_tag_ids) + ) + statement = statement.where(Entry.id.not_in(hidden_entry_ids)) if ast: start_time = time.time()