From b4659011183bef1a99375084375442c94b4cd529 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Sat, 13 Sep 2014 15:16:59 +0200 Subject: [PATCH] Fixed #55. --- resources/text/CHANGELOG | 15 +++++++++++++++ src/miscellaneous/databasefactory.cpp | 13 +++++++++++-- src/miscellaneous/databasefactory.h | 3 +++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/resources/text/CHANGELOG b/resources/text/CHANGELOG index 4b3494863..0a7b9282e 100644 --- a/resources/text/CHANGELOG +++ b/resources/text/CHANGELOG @@ -1,4 +1,19 @@ +

2.0.0.2

+ +Fixed: + + +Added: + + +Changed: + + +

2.0.0.1

Fixed: diff --git a/src/miscellaneous/databasefactory.cpp b/src/miscellaneous/databasefactory.cpp index 5f1d7a062..0c3f56713 100755 --- a/src/miscellaneous/databasefactory.cpp +++ b/src/miscellaneous/databasefactory.cpp @@ -428,8 +428,8 @@ QSqlDatabase DatabaseFactory::mysqlInitializeDatabase(const QString &connection_ query_db.exec(statement); if (query_db.lastError().isValid()) { - qFatal("MySQL database initialization failed. Initialization script '%s' is not correct.", - APP_DB_MYSQL_INIT); + qFatal("MySQL database initialization failed. Initialization script '%s' is not correct. Error : '%s'.", + APP_DB_MYSQL_INIT, qPrintable(query_db.lastError().databaseText())); } } @@ -453,6 +453,13 @@ QSqlDatabase DatabaseFactory::mysqlInitializeDatabase(const QString &connection_ return database; } +bool DatabaseFactory::mysqlVacuumDatabase() { + QSqlDatabase database = mysqlConnection(objectName()); + QSqlQuery query_vacuum(database); + + return query_vacuum.exec("OPTIMIZE TABLE rssguard.feeds;") && query_vacuum.exec("OPTIMIZE TABLE rssguard.messages;"); +} + QSqlDatabase DatabaseFactory::sqliteConnection(const QString &connection_name, DatabaseFactory::DesiredType desired_type) { if (desired_type == DatabaseFactory::StrictlyInMemory || @@ -548,6 +555,8 @@ bool DatabaseFactory::vacuumDatabase() { return sqliteVacuumDatabase(); case MYSQL: + return mysqlVacuumDatabase(); + default: return false; } diff --git a/src/miscellaneous/databasefactory.h b/src/miscellaneous/databasefactory.h index 901300464..135f6b9a3 100755 --- a/src/miscellaneous/databasefactory.h +++ b/src/miscellaneous/databasefactory.h @@ -107,6 +107,9 @@ class DatabaseFactory : public QObject { // Initializes MySQL database. QSqlDatabase mysqlInitializeDatabase(const QString &connection_name); + // Runs "VACUUM" on the database. + bool mysqlVacuumDatabase(); + // True if MySQL database is fully initialized for use, // otherwise false. bool m_mysqlDatabaseInitialized;