diff --git a/data/sql/dbmigrate-30_to_31.sql b/data/sql/dbmigrate-30_to_31.sql new file mode 100644 index 000000000..3b54713d3 --- /dev/null +++ b/data/sql/dbmigrate-30_to_31.sql @@ -0,0 +1,7 @@ +-- Script to migate from db version 30 to 31. + +-- Better indices to join playlist_item with other tables +CREATE INDEX playlist_item_trackname ON playlist_item(trackname); +CREATE INDEX playlist_item_artistname ON playlist_item(artistname); +CREATE INDEX artist_name ON artist(name); +CREATE INDEX track_name ON track(name); diff --git a/resources.qrc b/resources.qrc index d77f39226..ce0c0055a 100644 --- a/resources.qrc +++ b/resources.qrc @@ -161,5 +161,6 @@ data/js/cryptojs-core.js data/js/cryptojs-sha256.js data/sql/dbmigrate-29_to_30.sql + data/sql/dbmigrate-30_to_31.sql diff --git a/src/libtomahawk/database/DatabaseImpl.cpp b/src/libtomahawk/database/DatabaseImpl.cpp index d715781d0..5c5403df0 100644 --- a/src/libtomahawk/database/DatabaseImpl.cpp +++ b/src/libtomahawk/database/DatabaseImpl.cpp @@ -46,7 +46,7 @@ */ #include "Schema.sql.h" -#define CURRENT_SCHEMA_VERSION 30 +#define CURRENT_SCHEMA_VERSION 31 Tomahawk::DatabaseImpl::DatabaseImpl( const QString& dbname ) { diff --git a/src/libtomahawk/database/Schema.sql b/src/libtomahawk/database/Schema.sql index 49a948c54..543c56027 100644 --- a/src/libtomahawk/database/Schema.sql +++ b/src/libtomahawk/database/Schema.sql @@ -24,6 +24,7 @@ CREATE TABLE IF NOT EXISTS artist ( sortname TEXT NOT NULL ); CREATE UNIQUE INDEX artist_sortname ON artist(sortname); +CREATE INDEX artist_name ON artist(name); CREATE TABLE IF NOT EXISTS track ( id INTEGER PRIMARY KEY AUTOINCREMENT, @@ -32,6 +33,7 @@ CREATE TABLE IF NOT EXISTS track ( sortname TEXT NOT NULL ); CREATE UNIQUE INDEX track_artist_sortname ON track(artist,sortname); +CREATE INDEX track_name ON track(name); CREATE TABLE IF NOT EXISTS album ( id INTEGER PRIMARY KEY AUTOINCREMENT, @@ -90,6 +92,8 @@ CREATE TABLE IF NOT EXISTS playlist_item ( result_hint TEXT -- hint as to a result, to avoid using the resolver ); CREATE INDEX playlist_item_playlist ON playlist_item(playlist); +CREATE INDEX playlist_item_trackname ON playlist_item(trackname); +CREATE INDEX playlist_item_artistname ON playlist_item(artistname); CREATE TABLE IF NOT EXISTS playlist_revision ( guid TEXT PRIMARY KEY, @@ -296,4 +300,4 @@ CREATE TABLE IF NOT EXISTS settings ( v TEXT NOT NULL DEFAULT '' ); -INSERT INTO settings(k,v) VALUES('schema_version', '30'); +INSERT INTO settings(k,v) VALUES('schema_version', '31'); diff --git a/src/libtomahawk/database/Schema.sql.h b/src/libtomahawk/database/Schema.sql.h index d519d2646..8e6a1f718 100644 --- a/src/libtomahawk/database/Schema.sql.h +++ b/src/libtomahawk/database/Schema.sql.h @@ -1,5 +1,5 @@ /* - This file was automatically generated from ./Schema.sql on Mon Jul 29 21:04:33 CEST 2013. + This file was automatically generated from ./Schema.sql on Tue Jul 30 12:51:06 CEST 2013. */ static const char * tomahawk_schema_sql = @@ -20,6 +20,7 @@ static const char * tomahawk_schema_sql = " sortname TEXT NOT NULL" ");" "CREATE UNIQUE INDEX artist_sortname ON artist(sortname);" +"CREATE INDEX artist_name ON artist(name);" "CREATE TABLE IF NOT EXISTS track (" " id INTEGER PRIMARY KEY AUTOINCREMENT," " artist INTEGER NOT NULL REFERENCES artist(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED," @@ -27,6 +28,7 @@ static const char * tomahawk_schema_sql = " sortname TEXT NOT NULL" ");" "CREATE UNIQUE INDEX track_artist_sortname ON track(artist,sortname);" +"CREATE INDEX track_name ON track(name);" "CREATE TABLE IF NOT EXISTS album (" " id INTEGER PRIMARY KEY AUTOINCREMENT," " artist INTEGER NOT NULL REFERENCES artist(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED," @@ -67,6 +69,8 @@ static const char * tomahawk_schema_sql = " result_hint TEXT " ");" "CREATE INDEX playlist_item_playlist ON playlist_item(playlist);" +"CREATE INDEX playlist_item_trackname ON playlist_item(trackname);" +"CREATE INDEX playlist_item_artistname ON playlist_item(artistname);" "CREATE TABLE IF NOT EXISTS playlist_revision (" " guid TEXT PRIMARY KEY," " playlist TEXT NOT NULL REFERENCES playlist(guid) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED," @@ -193,7 +197,7 @@ static const char * tomahawk_schema_sql = " k TEXT NOT NULL PRIMARY KEY," " v TEXT NOT NULL DEFAULT ''" ");" -"INSERT INTO settings(k,v) VALUES('schema_version', '30');" +"INSERT INTO settings(k,v) VALUES('schema_version', '31');" ; const char * get_tomahawk_sql()