X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fsqlitestorage.cpp;h=49476e9c6311365e050667091f0d443dd26252b8;hb=cce93cda2ae1634eaaa50d1aa9065277444f8d46;hp=29fb9eb00edb7d60214e738ea71db9ca00b07c8e;hpb=23ebdc0a422294764ff3be3f8d7e56cc2b323185;p=quassel.git diff --git a/src/core/sqlitestorage.cpp b/src/core/sqlitestorage.cpp index 29fb9eb0..49476e9c 100644 --- a/src/core/sqlitestorage.cpp +++ b/src/core/sqlitestorage.cpp @@ -228,7 +228,7 @@ QList SqliteStorage::requestBuffers(UserId user, QDateTime since) { MsgId SqliteStorage::logMessage(Message msg) { QSqlQuery *logMessageQuery = cachedQuery("insert_message"); logMessageQuery->bindValue(":time", msg.timestamp().toTime_t()); - logMessageQuery->bindValue(":bufferid", msg.buffer().uid().toInt()); + logMessageQuery->bindValue(":bufferid", msg.bufferInfo().bufferId().toInt()); logMessageQuery->bindValue(":type", msg.type()); logMessageQuery->bindValue(":flags", msg.flags()); logMessageQuery->bindValue(":sender", msg.sender()); @@ -252,7 +252,7 @@ MsgId SqliteStorage::logMessage(Message msg) { QSqlQuery *getLastMessageIdQuery = cachedQuery("select_lastMessage"); getLastMessageIdQuery->bindValue(":time", msg.timestamp().toTime_t()); - getLastMessageIdQuery->bindValue(":bufferid", msg.buffer().uid().toInt()); + getLastMessageIdQuery->bindValue(":bufferid", msg.bufferInfo().bufferId().toInt()); getLastMessageIdQuery->bindValue(":type", msg.type()); getLastMessageIdQuery->bindValue(":sender", msg.sender()); getLastMessageIdQuery->exec(); @@ -260,7 +260,7 @@ MsgId SqliteStorage::logMessage(Message msg) { if(getLastMessageIdQuery->first()) { return getLastMessageIdQuery->value(0).toInt(); } else { // somethin went wrong... :( - qDebug() << getLastMessageIdQuery->lastQuery() << "time/bufferid/type/sender:" << msg.timestamp().toTime_t() << msg.buffer().uid() << msg.type() << msg.sender(); + qDebug() << getLastMessageIdQuery->lastQuery() << "time/bufferid/type/sender:" << msg.timestamp().toTime_t() << msg.bufferInfo().bufferId() << msg.type() << msg.sender(); Q_ASSERT(false); return 0; } @@ -269,28 +269,30 @@ MsgId SqliteStorage::logMessage(Message msg) { QList SqliteStorage::requestMsgs(BufferInfo buffer, int lastmsgs, int offset) { QList messagelist; // we have to determine the real offset first - QSqlQuery *requestMsgsOffsetQuery = cachedQuery("select_messagesOffset"); - requestMsgsOffsetQuery->bindValue(":bufferid", buffer.uid().toInt()); - requestMsgsOffsetQuery->bindValue(":messageid", offset); - requestMsgsOffsetQuery->exec(); - requestMsgsOffsetQuery->first(); - offset = requestMsgsOffsetQuery->value(0).toInt(); + QSqlQuery *offsetQuery = cachedQuery("select_messagesOffset"); + offsetQuery->bindValue(":bufferid", buffer.bufferId().toInt()); + offsetQuery->bindValue(":messageid", offset); + offsetQuery->exec(); + offsetQuery->first(); + offset = offsetQuery->value(0).toInt(); // now let's select the messages - QSqlQuery *requestMsgsQuery = cachedQuery("select_messages"); - requestMsgsQuery->bindValue(":bufferid", buffer.uid().toInt()); - requestMsgsQuery->bindValue(":bufferid2", buffer.uid().toInt()); // Qt can't handle the same placeholder used twice - requestMsgsQuery->bindValue(":limit", lastmsgs); - requestMsgsQuery->bindValue(":offset", offset); - requestMsgsQuery->exec(); - while(requestMsgsQuery->next()) { - Message msg(QDateTime::fromTime_t(requestMsgsQuery->value(1).toInt()), + QSqlQuery *msgQuery = cachedQuery("select_messages"); + msgQuery->bindValue(":bufferid", buffer.bufferId().toInt()); + msgQuery->bindValue(":limit", lastmsgs); + msgQuery->bindValue(":offset", offset); + msgQuery->exec(); + + watchQuery(msgQuery); + + while(msgQuery->next()) { + Message msg(QDateTime::fromTime_t(msgQuery->value(1).toInt()), buffer, - (Message::Type)requestMsgsQuery->value(2).toUInt(), - requestMsgsQuery->value(5).toString(), - requestMsgsQuery->value(4).toString(), - requestMsgsQuery->value(3).toUInt()); - msg.setMsgId(requestMsgsQuery->value(0).toInt()); + (Message::Type)msgQuery->value(2).toUInt(), + msgQuery->value(5).toString(), + msgQuery->value(4).toString(), + msgQuery->value(3).toUInt()); + msg.setMsgId(msgQuery->value(0).toInt()); messagelist << msg; } return messagelist; @@ -300,29 +302,30 @@ QList SqliteStorage::requestMsgs(BufferInfo buffer, int lastmsgs, int o QList SqliteStorage::requestMsgs(BufferInfo buffer, QDateTime since, int offset) { QList messagelist; // we have to determine the real offset first - QSqlQuery *requestMsgsSinceOffsetQuery = cachedQuery("select_messagesSinceOffset"); - requestMsgsSinceOffsetQuery->bindValue(":bufferid", buffer.uid().toInt()); - requestMsgsSinceOffsetQuery->bindValue(":since", since.toTime_t()); - requestMsgsSinceOffsetQuery->exec(); - requestMsgsSinceOffsetQuery->first(); - offset = requestMsgsSinceOffsetQuery->value(0).toInt(); + QSqlQuery *offsetQuery = cachedQuery("select_messagesSinceOffset"); + offsetQuery->bindValue(":bufferid", buffer.bufferId().toInt()); + offsetQuery->bindValue(":since", since.toTime_t()); + offsetQuery->exec(); + offsetQuery->first(); + offset = offsetQuery->value(0).toInt(); // now let's select the messages - QSqlQuery *requestMsgsSinceQuery = cachedQuery("select_messagesSince"); - requestMsgsSinceQuery->bindValue(":bufferid", buffer.uid().toInt()); - requestMsgsSinceQuery->bindValue(":bufferid2", buffer.uid().toInt()); - requestMsgsSinceQuery->bindValue(":since", since.toTime_t()); - requestMsgsSinceQuery->bindValue(":offset", offset); - requestMsgsSinceQuery->exec(); - - while(requestMsgsSinceQuery->next()) { - Message msg(QDateTime::fromTime_t(requestMsgsSinceQuery->value(1).toInt()), + QSqlQuery *msgQuery = cachedQuery("select_messagesSince"); + msgQuery->bindValue(":bufferid", buffer.bufferId().toInt()); + msgQuery->bindValue(":since", since.toTime_t()); + msgQuery->bindValue(":offset", offset); + msgQuery->exec(); + + watchQuery(msgQuery); + + while(msgQuery->next()) { + Message msg(QDateTime::fromTime_t(msgQuery->value(1).toInt()), buffer, - (Message::Type)requestMsgsSinceQuery->value(2).toUInt(), - requestMsgsSinceQuery->value(5).toString(), - requestMsgsSinceQuery->value(4).toString(), - requestMsgsSinceQuery->value(3).toUInt()); - msg.setMsgId(requestMsgsSinceQuery->value(0).toInt()); + (Message::Type)msgQuery->value(2).toUInt(), + msgQuery->value(5).toString(), + msgQuery->value(4).toString(), + msgQuery->value(3).toUInt()); + msg.setMsgId(msgQuery->value(0).toInt()); messagelist << msg; } @@ -332,20 +335,22 @@ QList SqliteStorage::requestMsgs(BufferInfo buffer, QDateTime since, in QList SqliteStorage::requestMsgRange(BufferInfo buffer, int first, int last) { QList messagelist; - QSqlQuery *requestMsgRangeQuery = cachedQuery("select_messageRange"); - requestMsgRangeQuery->bindValue(":bufferid", buffer.uid().toInt()); - requestMsgRangeQuery->bindValue(":bufferid2", buffer.uid().toInt()); - requestMsgRangeQuery->bindValue(":firstmsg", first); - requestMsgRangeQuery->bindValue(":lastmsg", last); - - while(requestMsgRangeQuery->next()) { - Message msg(QDateTime::fromTime_t(requestMsgRangeQuery->value(1).toInt()), + QSqlQuery *rangeQuery = cachedQuery("select_messageRange"); + rangeQuery->bindValue(":bufferid", buffer.bufferId().toInt()); + rangeQuery->bindValue(":firstmsg", first); + rangeQuery->bindValue(":lastmsg", last); + rangeQuery->exec(); + + watchQuery(rangeQuery); + + while(rangeQuery->next()) { + Message msg(QDateTime::fromTime_t(rangeQuery->value(1).toInt()), buffer, - (Message::Type)requestMsgRangeQuery->value(2).toUInt(), - requestMsgRangeQuery->value(5).toString(), - requestMsgRangeQuery->value(4).toString(), - requestMsgRangeQuery->value(3).toUInt()); - msg.setMsgId(requestMsgRangeQuery->value(0).toInt()); + (Message::Type)rangeQuery->value(2).toUInt(), + rangeQuery->value(5).toString(), + rangeQuery->value(4).toString(), + rangeQuery->value(3).toUInt()); + msg.setMsgId(rangeQuery->value(0).toInt()); messagelist << msg; }