From 9e48d87f8412b0dc9824557f5ad57538390e301c Mon Sep 17 00:00:00 2001
From: Deluan <deluan@navidrome.org>
Date: Tue, 2 Nov 2021 22:08:05 -0400
Subject: [PATCH] Add a new index for album, to optimize the
 `getAlbumList?type=alphabeticalByArtist` Subsonic query

---
 ...215414_add_alphabetical_by_artist_index.go | 23 +++++++++++++++++++
 1 file changed, 23 insertions(+)
 create mode 100644 db/migration/20211102215414_add_alphabetical_by_artist_index.go

diff --git a/db/migration/20211102215414_add_alphabetical_by_artist_index.go b/db/migration/20211102215414_add_alphabetical_by_artist_index.go
new file mode 100644
index 000000000..d16ab0983
--- /dev/null
+++ b/db/migration/20211102215414_add_alphabetical_by_artist_index.go
@@ -0,0 +1,23 @@
+package migrations
+
+import (
+	"database/sql"
+
+	"github.com/pressly/goose"
+)
+
+func init() {
+	goose.AddMigration(upAddAlphabeticalByArtistIndex, downAddAlphabeticalByArtistIndex)
+}
+
+func upAddAlphabeticalByArtistIndex(tx *sql.Tx) error {
+	_, err := tx.Exec(`
+create index album_alphabetical_by_artist 
+    ON album(compilation, order_album_artist_name, order_album_name)
+`)
+	return err
+}
+
+func downAddAlphabeticalByArtistIndex(tx *sql.Tx) error {
+	return nil
+}