File: upgrade-v6.sql

package info (click to toggle)
mopidy-local 3.3.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 448 kB
  • sloc: python: 3,153; sql: 544; sh: 15; makefile: 3
file content (122 lines) | stat: -rw-r--r-- 2,886 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
-- Mopidy-Local-SQLite schema upgrade v6 -> v7

BEGIN EXCLUSIVE TRANSACTION;

CREATE INDEX track_disc_no_index         ON track (disc_no);
CREATE INDEX album_musicbrainz_id_index  ON album (musicbrainz_id);
CREATE INDEX artist_musicbrainz_id_index ON artist (musicbrainz_id);
CREATE INDEX track_musicbrainz_id_index  ON track (musicbrainz_id);

DROP VIEW search;

CREATE VIEW search AS
SELECT docid                            AS docid,
       uri                              AS uri,
       name                             AS track_name,
       album_name                       AS album,
       artist_name                      AS artist,
       composer_name                    AS composer,
       performer_name                   AS performer,
       albumartist_name                 AS albumartist,
       genre                            AS genre,
       track_no                         AS track_no,
       disc_no                          AS disc_no,
       coalesce(date, album_date)       AS date,
       comment                          AS comment,
       musicbrainz_id                   AS musicbrainz_trackid,
       album_musicbrainz_id             AS musicbrainz_albumid,
       artist_musicbrainz_id            AS musicbrainz_artistid

 FROM tracks;

DROP TABLE fts;

CREATE VIRTUAL TABLE fts USING fts3 (
    uri,
    track_name,
    album,
    artist,
    composer,
    performer,
    albumartist,
    genre,
    track_no,
    disc_no,
    date,
    comment,
    musicbrainz_trackid,
    musicbrainz_albumid,
    musicbrainz_artistid
);

DROP TRIGGER track_after_insert;
DROP TRIGGER track_after_update;

CREATE TRIGGER track_after_insert AFTER INSERT ON track
BEGIN
    INSERT INTO fts (
        docid,
        uri,
        track_name,
        album,
        artist,
        composer,
        performer,
        albumartist,
        genre,
        track_no,
        disc_no,
        date,
        comment,
        musicbrainz_trackid,
        musicbrainz_albumid,
        musicbrainz_artistid
    ) SELECT * FROM search WHERE docid = new.rowid;
END;

CREATE TRIGGER track_after_update AFTER UPDATE ON track
BEGIN
    INSERT INTO fts (
        docid,
        uri,
        track_name,
        album,
        artist,
        composer,
        performer,
        albumartist,
        genre,
        track_no,
        disc_no,
        date,
        comment,
        musicbrainz_trackid,
        musicbrainz_albumid,
        musicbrainz_artistid
    ) SELECT * FROM search WHERE docid = new.rowid;
END;

-- update date

INSERT INTO fts (
    docid,
    uri,
    track_name,
    album,
    artist,
    composer,
    performer,
    albumartist,
    genre,
    track_no,
    disc_no,
    date,
    comment,
    musicbrainz_trackid,
    musicbrainz_albumid,
    musicbrainz_artistid
) SELECT * FROM search;

PRAGMA user_version = 7;  -- update schema version

END TRANSACTION;