Removed offending index

This commit is contained in:
emeric
2025-07-17 20:34:43 +02:00
parent b4915f5b6f
commit 4d4f83130a
3 changed files with 14 additions and 4 deletions
+8 -1
View File
@@ -34,7 +34,7 @@ namespace lms::db
{ {
namespace namespace
{ {
static constexpr Version LMS_DATABASE_VERSION{ 97 }; static constexpr Version LMS_DATABASE_VERSION{ 98 };
} }
VersionInfo::VersionInfo() VersionInfo::VersionInfo()
@@ -1417,6 +1417,12 @@ WHERE art.image_id IS NULL)");
dropIndexes(session); dropIndexes(session);
} }
void migrateFromV97(Session& session)
{
// Removed not that useful indexes
dropIndexes(session);
}
bool doDbMigration(Session& session) bool doDbMigration(Session& session)
{ {
constexpr std::string_view outdatedMsg{ "Outdated database, please rebuild it (delete the .db file and restart)" }; constexpr std::string_view outdatedMsg{ "Outdated database, please rebuild it (delete the .db file and restart)" };
@@ -1490,6 +1496,7 @@ WHERE art.image_id IS NULL)");
{ 94, migrateFromV94 }, { 94, migrateFromV94 },
{ 95, migrateFromV95 }, { 95, migrateFromV95 },
{ 96, migrateFromV96 }, { 96, migrateFromV96 },
{ 97, migrateFromV97 },
}; };
bool migrationPerformed{}; bool migrationPerformed{};
+3 -2
View File
@@ -289,10 +289,9 @@ namespace lms::db
utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS track_artist_link_artist_idx ON track_artist_link(artist_id)"); utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS track_artist_link_artist_idx ON track_artist_link(artist_id)");
utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS track_artist_link_artist_mbid_matched_artist_idx ON track_artist_link(artist_mbid_matched, artist_id)"); utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS track_artist_link_artist_mbid_matched_artist_idx ON track_artist_link(artist_mbid_matched, artist_id)");
utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS track_artist_link_artist_track_idx ON track_artist_link(artist_id, track_id)"); utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS track_artist_link_artist_track_idx ON track_artist_link(artist_id, track_id)");
utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS track_artist_link_artist_type_idx ON track_artist_link(artist_id, type)"); utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS track_artist_link_artist_type_track_idx ON track_artist_link(artist_id, type, track_id)");
utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS track_artist_link_track_artist_idx ON track_artist_link(track_id, artist_id)"); utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS track_artist_link_track_artist_idx ON track_artist_link(track_id, artist_id)");
utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS track_artist_link_track_type_idx ON track_artist_link(track_id, type)"); utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS track_artist_link_track_type_idx ON track_artist_link(track_id, type)");
utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS track_artist_link_type_track_artist_idx ON track_artist_link(type, track_id, artist_id)");
utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS track_features_track_idx ON track_features(track_id)"); utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS track_features_track_idx ON track_features(track_id)");
@@ -384,6 +383,8 @@ namespace lms::db
bool Session::areAllTablesEmpty() bool Session::areAllTablesEmpty()
{ {
checkReadTransaction();
const std::vector<std::string> entryList{ utils::fetchQueryResults(_session.query<std::string>("SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'")) }; const std::vector<std::string> entryList{ utils::fetchQueryResults(_session.query<std::string>("SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'")) };
return std::all_of(entryList.cbegin(), entryList.cend(), [this](const std::string& entry) { return std::all_of(entryList.cbegin(), entryList.cend(), [this](const std::string& entry) {
@@ -47,6 +47,8 @@ namespace lms::db
void execute(std::string_view statement); void execute(std::string_view statement);
void optimize(); // need to acquire a write transaction
// All these methods will acquire transactions // All these methods will acquire transactions
void fullAnalyze(); // helper for retrieveEntriesToAnalyze + analyzeEntry void fullAnalyze(); // helper for retrieveEntriesToAnalyze + analyzeEntry
void retrieveEntriesToAnalyze(std::vector<std::string>& entryList); void retrieveEntriesToAnalyze(std::vector<std::string>& entryList);