Skip to content

Commit 14599e9

Browse files
authored
fix: keep initial id order in get_entries_full() (#736)
* fix: keep initial id order in `get_entries_full()` * fix: correct variable names
1 parent ee14e2c commit 14599e9

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

tagstudio/src/core/library/alchemy/library.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
ColumnExpressionArgument,
2222
Engine,
2323
NullPool,
24+
ScalarResult,
2425
and_,
2526
asc,
2627
create_engine,
@@ -486,9 +487,11 @@ def get_entries_full(self, entry_ids: list[int] | set[int]) -> Iterator[Entry]:
486487
),
487488
)
488489
statement = statement.distinct()
490+
entries: ScalarResult[Entry] | list[Entry] = session.execute(statement).scalars()
491+
entries = entries.unique() # type: ignore
489492

490-
entries = session.execute(statement).scalars()
491-
entries = entries.unique()
493+
entry_order_dict = {e_id: order for order, e_id in enumerate(entry_ids)}
494+
entries = sorted(entries, key=lambda e: entry_order_dict[e.id])
492495

493496
for entry in entries:
494497
yield entry

0 commit comments

Comments
 (0)