Skip to content

Commit 14c4a20

Browse files
dannyvfilmsclaude
andcommitted
Fix too-many-SQL-variables crash on Collection page completeness map
- get_collection_completeness_map's collected_item_ids() passed the full episode/season/show id list as SQL bind params, exceeding SQLite's 999-variable limit for large libraries - Batch the lookup into chunks of 500 ids and union the results Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
1 parent cbc7d0a commit 14c4a20

1 file changed

Lines changed: 11 additions & 6 deletions

File tree

src/app/helpers.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -940,12 +940,17 @@ def get_collection_completeness_map(user, show_items):
940940
def collected_item_ids(item_ids):
941941
if not item_ids:
942942
return set()
943-
return set(
944-
CollectionEntry.objects.filter(
945-
user=user,
946-
item_id__in=item_ids,
947-
).values_list("item_id", flat=True)
948-
)
943+
item_ids = list(item_ids)
944+
chunk_size = 500
945+
collected = set()
946+
for offset in range(0, len(item_ids), chunk_size):
947+
collected.update(
948+
CollectionEntry.objects.filter(
949+
user=user,
950+
item_id__in=item_ids[offset : offset + chunk_size],
951+
).values_list("item_id", flat=True)
952+
)
953+
return collected
949954

950955
collected_season_ids = collected_item_ids([item.id for item in all_season_items])
951956
collected_episode_ids = collected_item_ids([item.id for item in all_episode_items])

0 commit comments

Comments
 (0)