X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fpostgresqlstorage.h;h=bffdb0d0976164c2a5f751aca18667a8c96d4acd;hb=2e8511846057783f507a70621c440a4a81f76c41;hp=0d172ec196dc4cf496bf506b3a1904c55ea7d39e;hpb=9d54503555534a2c554f09a33df6afa33d6308ec;p=quassel.git diff --git a/src/core/postgresqlstorage.h b/src/core/postgresqlstorage.h index 0d172ec1..bffdb0d0 100644 --- a/src/core/postgresqlstorage.h +++ b/src/core/postgresqlstorage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2016 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -95,6 +95,18 @@ public slots: virtual QHash bufferLastSeenMsgIds(UserId user); virtual void setBufferMarkerLineMsg(UserId user, const BufferId &bufferId, const MsgId &msgId); virtual QHash bufferMarkerLineMsgIds(UserId user); + /** + * Sets the last known valid message ID for the given buffer. + * + * This limits LastSeenMsgIds from being set to message IDs in the future, improving performance + * when searching for messages in the backlog. + * + * @see PostgreSqlStorage::setBufferLastSeenMsg() + * + * @param bufferId[in] ID of the Buffer + * @param msgId[in] ID of latest message for this buffer + */ + virtual void setBufferLastMsg(const BufferId &bufferId, const MsgId &msgId); /* Message handling */ virtual bool logMessage(Message &msg); @@ -116,10 +128,11 @@ protected: virtual bool setupSchemaVersion(int version); void safeExec(QSqlQuery &query); + bool beginTransaction(QSqlDatabase &db); bool beginReadOnlyTransaction(QSqlDatabase &db); - QSqlQuery executePreparedQuery(const QString &queryname, const QVariantList ¶ms, const QSqlDatabase &db); - QSqlQuery executePreparedQuery(const QString &queryname, const QVariant ¶m, const QSqlDatabase &db); + QSqlQuery executePreparedQuery(const QString &queryname, const QVariantList ¶ms, QSqlDatabase &db); + QSqlQuery executePreparedQuery(const QString &queryname, const QVariant ¶m, QSqlDatabase &db); void deallocateQuery(const QString &queryname, const QSqlDatabase &db); inline void savePoint(const QString &handle, const QSqlDatabase &db) { db.exec(QString("SAVEPOINT %1").arg(handle)); } @@ -129,8 +142,8 @@ protected: private: void bindNetworkInfo(QSqlQuery &query, const NetworkInfo &info); void bindServerInfo(QSqlQuery &query, const Network::Server &server); - QSqlQuery prepareAndExecuteQuery(const QString &queryname, const QString ¶mstring, const QSqlDatabase &db); - inline QSqlQuery prepareAndExecuteQuery(const QString &queryname, const QSqlDatabase &db) { return prepareAndExecuteQuery(queryname, QString(), db); } + QSqlQuery prepareAndExecuteQuery(const QString &queryname, const QString ¶mstring, QSqlDatabase &db); + inline QSqlQuery prepareAndExecuteQuery(const QString &queryname, QSqlDatabase &db) { return prepareAndExecuteQuery(queryname, QString(), db); } QString _hostName; int _port; @@ -140,8 +153,6 @@ private: }; -inline void PostgreSqlStorage::safeExec(QSqlQuery &query) { query.exec(); } - // ======================================== // PostgreSqlMigration // ========================================