X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fabstractsqlstorage.cpp;h=00c818fe2240375f0ac4938b6584e727fe157918;hp=d8992df1afe1704342958331e5dd66c55e535205;hb=77a021d6d237abc3b54277584c1bedfecf0ceda2;hpb=2e72a5e771e0e717a4506018233fd7a27746e08f diff --git a/src/core/abstractsqlstorage.cpp b/src/core/abstractsqlstorage.cpp index d8992df1..00c818fe 100644 --- a/src/core/abstractsqlstorage.cpp +++ b/src/core/abstractsqlstorage.cpp @@ -19,6 +19,7 @@ ***************************************************************************/ #include "abstractsqlstorage.h" +#include "quassel.h" #include "logger.h" @@ -86,12 +87,16 @@ void AbstractSqlStorage::addConnectionToPool() { if(!db.open()) { qWarning() << "Unable to open database" << displayName() << "for thread" << QThread::currentThread(); qWarning() << "-" << db.lastError().text(); + } else { + initDbSession(db); } } Storage::State AbstractSqlStorage::init(const QVariantMap &settings) { setConnectionProperties(settings); + _debug = Quassel::isOptionSet("debug"); + QSqlDatabase db = logDb(); if(!db.isValid() || !db.isOpen()) return NotAvailable; @@ -223,8 +228,10 @@ int AbstractSqlStorage::schemaVersion() { } bool AbstractSqlStorage::watchQuery(QSqlQuery &query) { - if(query.lastError().isValid()) { - qCritical() << "unhandled Error in QSqlQuery!"; + bool queryError = query.lastError().isValid(); + if(queryError || _debug) { + if(queryError) + qCritical() << "unhandled Error in QSqlQuery!"; qCritical() << " last Query:\n" << qPrintable(query.lastQuery()); qCritical() << " executed Query:\n" << qPrintable(query.executedQuery()); QVariantMap boundValues = query.boundValues(); @@ -261,7 +268,7 @@ bool AbstractSqlStorage::watchQuery(QSqlQuery &query) { qCritical() << " Driver Message:" << qPrintable(query.lastError().driverText()); qCritical() << " DB Message:" << qPrintable(query.lastError().databaseText()); - return false; + return !queryError; } return true; }