[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdesupport/soprano
From: Sebastian Trueg <sebastian () trueg ! de>
Date: 2010-08-27 16:30:39
Message-ID: 20100827163039.726E1AC857 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1168868 by trueg:
New Virtuoso backend parameter "QueryTimeout" which is exactly what it sounds like:
a maximum time that a query may take. After that time the query is canceled and the
results already gathered are returned.
TODO: signal if this happens to the client knows that there might be more results.
M +1 -1 CMakeLists.txt
M +1 -0 ChangeLog
M +2 -0 backends/virtuoso/Virtuoso.dox
M +14 -1 backends/virtuoso/odbcconnectionpool.cpp
M +6 -2 backends/virtuoso/odbcconnectionpool.h
M +3 -1 backends/virtuoso/odbcconnectionpool_p.h
M +6 -1 backends/virtuoso/virtuosobackend.cpp
--- trunk/kdesupport/soprano/CMakeLists.txt #1168867:1168868
@@ -7,7 +7,7 @@
################## Soprano version ################################
set(CMAKE_SOPRANO_VERSION_MAJOR 2)
set(CMAKE_SOPRANO_VERSION_MINOR 5)
-set(CMAKE_SOPRANO_VERSION_RELEASE 61)
+set(CMAKE_SOPRANO_VERSION_RELEASE 62)
set(CMAKE_SOPRANO_VERSION_STRING \
"${CMAKE_SOPRANO_VERSION_MAJOR}.${CMAKE_SOPRANO_VERSION_MINOR}.${CMAKE_SOPRANO_VERSION_RELEASE}")
--- trunk/kdesupport/soprano/ChangeLog #1168867:1168868
@@ -1,5 +1,6 @@
2.6.0
* Fixed handling of xsd:boolean in SPARQL queries in the Virtuoso backend
+ * Added new parameter for the Virtuoso backend: QueryTimeout allows to set a \
maximum query exeution time.
2.5.0
* New public qHash method for Statement
--- trunk/kdesupport/soprano/backends/virtuoso/Virtuoso.dox #1168867:1168868
@@ -33,6 +33,8 @@
* - \c forcedstart - A boolean property which when set will result in the backend \
killing any Virtuoso instance accessing the
* data in the storage dir before starting its own instance. This \
option is ignored when connecting to an already
* running Virtuoso server.
+ * - \c QueryTimeout - The maximum time any query may take in milliseconds. See <a \
href="http://docs.openlinksw.com/virtuoso/anytimequeries.html"> + * \
Virtuoso Anytime Queries</a> for details.
*
* The settings above are user settings and have to be provided using \
Soprano::BackendOptionUser:
*
--- trunk/kdesupport/soprano/backends/virtuoso/odbcconnectionpool.cpp \
#1168867:1168868 @@ -81,17 +81,30 @@
conn->d->m_env = env;
conn->d->m_hdbc = hdbc;
conn->d->m_pool = this;
+
+ // run the setup commands
+ Q_FOREACH( const QString& command, m_connectionSetupCommands ) {
+ if ( conn->executeCommand( command ) != Error::ErrorNone ) {
+ setError( conn->lastError() );
+ delete conn;
+ return 0;
+ }
+ }
+
return conn;
}
-Soprano::ODBC::ConnectionPool::ConnectionPool( const QString& odbcConnectString, \
QObject* parent ) +Soprano::ODBC::ConnectionPool::ConnectionPool( const QString& \
odbcConnectString, + const QStringList& \
connectionSetupCommands, + QObject* \
parent ) : QObject( parent ),
d( new ConnectionPoolPrivate() )
{
qDebug() << Q_FUNC_INFO << odbcConnectString;
d->m_odbcConnectString = odbcConnectString;
+ d->m_connectionSetupCommands = connectionSetupCommands;
}
--- trunk/kdesupport/soprano/backends/virtuoso/odbcconnectionpool.h #1168867:1168868
@@ -1,7 +1,7 @@
/*
* This file is part of Soprano Project
*
- * Copyright (C) 2009 Sebastian Trueg <trueg@kde.org>
+ * Copyright (C) 2009-2010 Sebastian Trueg <trueg@kde.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -26,6 +26,8 @@
#include "error.h"
+class QStringList;
+
namespace Soprano {
namespace ODBC {
@@ -37,7 +39,9 @@
Q_OBJECT
public:
- ConnectionPool( const QString& odbcConnectString, QObject* parent = 0 );
+ ConnectionPool( const QString& odbcConnectString,
+ const QStringList& connectionSetupCommands,
+ QObject* parent = 0 );
~ConnectionPool();
/**
--- trunk/kdesupport/soprano/backends/virtuoso/odbcconnectionpool_p.h \
#1168867:1168868 @@ -1,7 +1,7 @@
/*
* This file is part of Soprano Project
*
- * Copyright (C) 2009 Sebastian Trueg <trueg@kde.org>
+ * Copyright (C) 2009-2010 Sebastian Trueg <trueg@kde.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -26,6 +26,7 @@
#include <QtCore/QHash>
#include <QtCore/QMutex>
+#include <QtCore/QStringList>
class QThread;
@@ -39,6 +40,7 @@
{
public:
QString m_odbcConnectString;
+ QStringList m_connectionSetupCommands;
QHash<QThread*, Connection*> m_openConnections;
--- trunk/kdesupport/soprano/backends/virtuoso/virtuosobackend.cpp #1168867:1168868
@@ -55,6 +55,7 @@
QString pwd = valueInSettings( settings, BackendOptionPassword ).toString();
QString path = valueInSettings( settings, BackendOptionStorageDir ).toString();
bool debugMode = valueInSettings( settings, BackendOptionUser, QLatin1String( \
"debugmode" ) ).toBool(); + int queryTimeout = valueInSettings( settings, \
QLatin1String( "QueryTimeout" ), 0 ).toInt();
VirtuosoController* controller = 0;
if ( host.isEmpty() &&
@@ -92,8 +93,12 @@
const QString connectString = QString( "host=%1:%2;uid=%3;pwd=%4;driver=%5" )
.arg( host, QString::number( port ), uid, pwd, \
odbcDriver ); + QStringList connectionSetupCommands;
+ if ( queryTimeout > 1000 ) {
+ connectionSetupCommands << QString::fromLatin1( "set result_timeout=%1" \
).arg( queryTimeout ); + }
- ODBC::ConnectionPool* connectionPool = new ODBC::ConnectionPool( connectString \
); + ODBC::ConnectionPool* connectionPool = new ODBC::ConnectionPool( \
connectString, connectionSetupCommands );
// FIXME: should configuration only be allowed on spawned servers?
if ( ODBC::Connection* conn = connectionPool->connection() ) {
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic