From 68a1547e8b4bb96c9e0b867dd005ab3a33effdd2 Mon Sep 17 00:00:00 2001 From: WithoutPants <53250216+WithoutPants@users.noreply.github.com> Date: Tue, 11 Oct 2022 14:21:28 +1100 Subject: [PATCH] Include primary tag in tag marker count sorting (#2993) --- pkg/sqlite/tag.go | 2 +- pkg/sqlite/tag_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/sqlite/tag.go b/pkg/sqlite/tag.go index ea6eb17d0..922c8f41d 100644 --- a/pkg/sqlite/tag.go +++ b/pkg/sqlite/tag.go @@ -600,7 +600,7 @@ func (qb *tagQueryBuilder) getTagSort(query *queryBuilder, findFilter *models.Fi case "scenes_count": return getCountSort(tagTable, scenesTagsTable, tagIDColumn, direction) case "scene_markers_count": - return getCountSort(tagTable, "scene_markers_tags", tagIDColumn, direction) + return fmt.Sprintf(" ORDER BY (SELECT COUNT(*) FROM scene_markers_tags WHERE tags.id = scene_markers_tags.tag_id)+(SELECT COUNT(*) FROM scene_markers WHERE tags.id = scene_markers.primary_tag_id) %s", getSortDirection(direction)) case "images_count": return getCountSort(tagTable, imagesTagsTable, tagIDColumn, direction) case "galleries_count": diff --git a/pkg/sqlite/tag_test.go b/pkg/sqlite/tag_test.go index 3a9dbd1f9..9309a826c 100644 --- a/pkg/sqlite/tag_test.go +++ b/pkg/sqlite/tag_test.go @@ -191,7 +191,7 @@ func TestTagQuerySort(t *testing.T) { sortBy = "scene_markers_count" tags = queryTags(ctx, t, sqb, nil, findFilter) - assert.Equal(tagIDs[tagIdxWithMarkers], tags[0].ID) + assert.Equal(tagIDs[tagIdxWithPrimaryMarkers], tags[0].ID) sortBy = "images_count" tags = queryTags(ctx, t, sqb, nil, findFilter)