remove active sourceId subquery

This commit is contained in:
austinried
2025-11-23 12:40:05 +09:00
parent fd800b0e12
commit b9a094c1c4
5 changed files with 16 additions and 17 deletions

View File

@@ -13,14 +13,13 @@ class LibraryDao extends DatabaseAccessor<SubtracksDatabase>
LibraryDao(super.db);
Future<List<models.Album>> listAlbums({
required int sourceId,
required int limit,
required int offset,
}) {
final query = albums.select()
..where(
(f) => f.sourceId.equalsExp(
subqueryExpression(db.sourcesDao.activeSourceId()),
),
(f) => f.sourceId.equals(sourceId),
)
..limit(limit, offset: offset);
@@ -28,6 +27,7 @@ class LibraryDao extends DatabaseAccessor<SubtracksDatabase>
}
Future<List<AristListItem>> listArtists({
required int sourceId,
required int limit,
required int offset,
}) async {
@@ -42,12 +42,8 @@ class LibraryDao extends DatabaseAccessor<SubtracksDatabase>
])
..addColumns([albumCount])
..where(
artists.sourceId.equalsExp(
subqueryExpression(db.sourcesDao.activeSourceId()),
) &
albums.sourceId.equalsExp(
subqueryExpression(db.sourcesDao.activeSourceId()),
),
artists.sourceId.equals(sourceId) &
albums.sourceId.equals(sourceId),
)
..groupBy([artists.sourceId, artists.id])
..orderBy([OrderingTerm.asc(artists.name)])

View File

@@ -9,10 +9,11 @@ class SourcesDao extends DatabaseAccessor<SubtracksDatabase>
with _$SourcesDaoMixin {
SourcesDao(super.db);
JoinedSelectStatement<Sources, Source> activeSourceId() {
return selectOnly(sources)
..addColumns([sources.id])
..where(sources.isActive.equals(true));
Selectable<int?> activeSourceId() {
return (selectOnly(sources)
..addColumns([sources.id])
..where(sources.isActive.equals(true)))
.map((row) => row.read(sources.id));
}
Stream<List<(Source, SubsonicSetting)>> listSources() {