Rex Dieter 6c7a48
From c2e9a4140ddbd7374c8f60e4ed644b73cc3533f0 Mon Sep 17 00:00:00 2001
Rex Dieter 6c7a48
From: Marco Martin <notmart@gmail.com>
Rex Dieter 6c7a48
Date: Mon, 28 Jan 2013 10:25:44 +0100
Rex Dieter 6c7a48
Subject: [PATCH 1/3] disable the cache for the SQlite backend
Rex Dieter 6c7a48
Rex Dieter 6c7a48
using the cache for sqlite makes impossible to create agents
Rex Dieter 6c7a48
---
Rex Dieter 6c7a48
 server/src/storage/querycache.cpp | 12 ++++++++++--
Rex Dieter 6c7a48
 1 file changed, 10 insertions(+), 2 deletions(-)
Rex Dieter 6c7a48
Rex Dieter 6c7a48
diff --git a/server/src/storage/querycache.cpp b/server/src/storage/querycache.cpp
Rex Dieter 6c7a48
index 860aba0..5b683d5 100644
Rex Dieter 6c7a48
--- a/server/src/storage/querycache.cpp
Rex Dieter 6c7a48
+++ b/server/src/storage/querycache.cpp
Rex Dieter 6c7a48
@@ -18,6 +18,8 @@
Rex Dieter 6c7a48
  */
Rex Dieter 6c7a48
 
Rex Dieter 6c7a48
 #include "querycache.h"
Rex Dieter 6c7a48
+#include "dbtype.h"
Rex Dieter 6c7a48
+#include "datastore.h"
Rex Dieter 6c7a48
 
Rex Dieter 6c7a48
 #include <QSqlQuery>
Rex Dieter 6c7a48
 #include <QThreadStorage>
Rex Dieter 6c7a48
@@ -36,7 +38,11 @@ static QHash<QString, QSqlQuery>* cache()
Rex Dieter 6c7a48
 
Rex Dieter 6c7a48
 bool QueryCache::contains(const QString& queryStatement)
Rex Dieter 6c7a48
 {
Rex Dieter 6c7a48
-  return cache()->contains( queryStatement );
Rex Dieter 6c7a48
+  if ( DbType::type( DataStore::self()->database() ) == DbType::Sqlite ) {
Rex Dieter 6c7a48
+    return false;
Rex Dieter 6c7a48
+  } else {
Rex Dieter 6c7a48
+    return cache()->contains( queryStatement );
Rex Dieter 6c7a48
+  }
Rex Dieter 6c7a48
 }
Rex Dieter 6c7a48
 
Rex Dieter 6c7a48
 QSqlQuery QueryCache::query(const QString& queryStatement)
Rex Dieter 6c7a48
@@ -46,5 +52,7 @@ QSqlQuery QueryCache::query(const QString& queryStatement)
Rex Dieter 6c7a48
 
Rex Dieter 6c7a48
 void QueryCache::insert(const QString& queryStatement, const QSqlQuery& query)
Rex Dieter 6c7a48
 {
Rex Dieter 6c7a48
-  cache()->insert( queryStatement, query );
Rex Dieter 6c7a48
+  if ( DbType::type( DataStore::self()->database() ) != DbType::Sqlite ) {
Rex Dieter 6c7a48
+    cache()->insert( queryStatement, query );
Rex Dieter 6c7a48
+  }
Rex Dieter 6c7a48
 }
Rex Dieter 6c7a48
-- 
Rex Dieter 6c7a48
1.8.1.2
Rex Dieter 6c7a48