print sql queries when running core in debug mode
authorDaniel Albers <daniel@lbers.com>
Wed, 16 Jun 2010 21:39:48 +0000 (23:39 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Wed, 11 Aug 2010 14:06:07 +0000 (16:06 +0200)
src/core/abstractsqlstorage.cpp
src/core/abstractsqlstorage.h

index 92f03cb..00c818f 100644 (file)
@@ -19,6 +19,7 @@
  ***************************************************************************/
 
 #include "abstractsqlstorage.h"
+#include "quassel.h"
 
 #include "logger.h"
 
@@ -94,6 +95,8 @@ void AbstractSqlStorage::addConnectionToPool() {
 Storage::State AbstractSqlStorage::init(const QVariantMap &settings) {
   setConnectionProperties(settings);
 
+  _debug = Quassel::isOptionSet("debug");
+
   QSqlDatabase db = logDb();
   if(!db.isValid() || !db.isOpen())
     return NotAvailable;
@@ -225,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();
@@ -263,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;
 }
index 0367a55..d0046a9 100644 (file)
@@ -89,6 +89,7 @@ private:
   void addConnectionToPool();
 
   int _schemaVersion;
+  bool _debug;
 
   static int _nextConnectionId;
   QMutex _connectionPoolMutex;