core: Drop the 'update_lastmsgid' statements
authorShane Synan <digitalcircuit36939@gmail.com>
Sun, 16 Apr 2017 04:28:44 +0000 (23:28 -0500)
committerManuel Nickschas <sputnick@quassel-irc.org>
Mon, 24 Apr 2017 19:53:20 +0000 (21:53 +0200)
Remove the 'update_lastmsgid.sql' queries from PostgreSQL and SQLite
and remove the 'setBufferLastMsgId()' functions from
PostgreSqlStorage and SqliteStorage.  These are no longer needed now
that database triggers handle updating the 'lastmsgid' for buffers.

This removes redundancy and might improve performance.

Resolves GH-290.

src/core/SQL/PostgreSQL/update_buffer_lastmsgid.sql [deleted file]
src/core/SQL/SQLite/update_buffer_lastmsgid.sql [deleted file]
src/core/postgresqlstorage.cpp
src/core/postgresqlstorage.h
src/core/sql.qrc
src/core/sqlitestorage.cpp
src/core/sqlitestorage.h

diff --git a/src/core/SQL/PostgreSQL/update_buffer_lastmsgid.sql b/src/core/SQL/PostgreSQL/update_buffer_lastmsgid.sql
deleted file mode 100644 (file)
index b0f1711..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-UPDATE buffer
-SET lastmsgid = :lastmsgid
-WHERE bufferid = :bufferid
diff --git a/src/core/SQL/SQLite/update_buffer_lastmsgid.sql b/src/core/SQL/SQLite/update_buffer_lastmsgid.sql
deleted file mode 100644 (file)
index b0f1711..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-UPDATE buffer
-SET lastmsgid = :lastmsgid
-WHERE bufferid = :bufferid
index 2877ae0..cbbd473 100644 (file)
@@ -1370,17 +1370,6 @@ QHash<BufferId, MsgId> PostgreSqlStorage::bufferMarkerLineMsgIds(UserId user)
     return markerLineHash;
 }
 
-void PostgreSqlStorage::setBufferLastMsg(const BufferId &bufferId, const MsgId &msgId)
-{
-    QSqlQuery query(logDb());
-    query.prepare(queryString("update_buffer_lastmsgid"));
-
-    query.bindValue(":bufferid", bufferId.toInt());
-    query.bindValue(":lastmsgid", msgId.toInt());
-    safeExec(query);
-    watchQuery(query);
-}
-
 bool PostgreSqlStorage::logMessage(Message &msg)
 {
     QSqlDatabase db = logDb();
@@ -1434,9 +1423,6 @@ bool PostgreSqlStorage::logMessage(Message &msg)
     db.commit();
     if (msgId.isValid()) {
         msg.setMsgId(msgId);
-
-        setBufferLastMsg(msg.bufferInfo().bufferId(), msgId);
-
         return true;
     }
     else {
index bffdb0d..c96687e 100644 (file)
@@ -95,18 +95,6 @@ public slots:
     virtual QHash<BufferId, MsgId> bufferLastSeenMsgIds(UserId user);
     virtual void setBufferMarkerLineMsg(UserId user, const BufferId &bufferId, const MsgId &msgId);
     virtual QHash<BufferId, MsgId> 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);
index e39fc27..d302b4d 100644 (file)
@@ -74,7 +74,6 @@
     <file>./SQL/PostgreSQL/setup_120_alter_messageid_seq.sql</file>
     <file>./SQL/PostgreSQL/setup_130_function_lastmsgid.sql</file>
     <file>./SQL/PostgreSQL/update_backlog_bufferid.sql</file>
-    <file>./SQL/PostgreSQL/update_buffer_lastmsgid.sql</file>
     <file>./SQL/PostgreSQL/update_buffer_lastseen.sql</file>
     <file>./SQL/PostgreSQL/update_buffer_markerlinemsgid.sql</file>
     <file>./SQL/PostgreSQL/update_buffer_name.sql</file>
     <file>./SQL/SQLite/setup_130_identity.sql</file>
     <file>./SQL/SQLite/setup_140_identity_nick.sql</file>
     <file>./SQL/SQLite/update_backlog_bufferid.sql</file>
-    <file>./SQL/SQLite/update_buffer_lastmsgid.sql</file>
     <file>./SQL/SQLite/update_buffer_lastseen.sql</file>
     <file>./SQL/SQLite/update_buffer_markerlinemsgid.sql</file>
     <file>./SQL/SQLite/update_buffer_name.sql</file>
index f671c39..10c5f1b 100644 (file)
@@ -1475,17 +1475,6 @@ QHash<BufferId, MsgId> SqliteStorage::bufferMarkerLineMsgIds(UserId user)
     return markerLineHash;
 }
 
-void SqliteStorage::setBufferLastMsg(const BufferId &bufferId, const MsgId &msgId)
-{
-    QSqlQuery query(logDb());
-    query.prepare(queryString("update_buffer_lastmsgid"));
-
-    query.bindValue(":bufferid", bufferId.toInt());
-    query.bindValue(":lastmsgid", msgId.toInt());
-    safeExec(query);
-    watchQuery(query);
-}
-
 bool SqliteStorage::logMessage(Message &msg)
 {
     QSqlDatabase db = logDb();
@@ -1524,8 +1513,6 @@ bool SqliteStorage::logMessage(Message &msg)
             MsgId msgId = logMessageQuery.lastInsertId().toInt();
             if (msgId.isValid()) {
                 msg.setMsgId(msgId);
-
-                setBufferLastMsg(msg.bufferInfo().bufferId(), msgId);
             }
             else {
                 error = true;
index e42feb4..9a12fbe 100644 (file)
@@ -96,18 +96,6 @@ public slots:
     virtual QHash<BufferId, MsgId> bufferLastSeenMsgIds(UserId user);
     virtual void setBufferMarkerLineMsg(UserId user, const BufferId &bufferId, const MsgId &msgId);
     virtual QHash<BufferId, MsgId> 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 SqliteStorage::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);