+++ /dev/null
-UPDATE buffer
-SET lastmsgid = :lastmsgid
-WHERE bufferid = :bufferid
+++ /dev/null
-UPDATE buffer
-SET lastmsgid = :lastmsgid
-WHERE bufferid = :bufferid
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();
db.commit();
if (msgId.isValid()) {
msg.setMsgId(msgId);
-
- setBufferLastMsg(msg.bufferInfo().bufferId(), msgId);
-
return true;
}
else {
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);
<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>
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();
MsgId msgId = logMessageQuery.lastInsertId().toInt();
if (msgId.isValid()) {
msg.setMsgId(msgId);
-
- setBufferLastMsg(msg.bufferInfo().bufferId(), msgId);
}
else {
error = true;
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);