X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fsqlitestorage.cpp;h=48f2df8b243b45616e478d40a84735c504e4ff26;hp=81108bd06c035a32543eb35ef4643eecc6cb8106;hb=4c9bac32c316fca8007e02190c709b212f73a93e;hpb=d1b6499b0b848d4287efae89107576548533502c diff --git a/src/core/sqlitestorage.cpp b/src/core/sqlitestorage.cpp index 81108bd0..48f2df8b 100644 --- a/src/core/sqlitestorage.cpp +++ b/src/core/sqlitestorage.cpp @@ -75,7 +75,7 @@ UserId SqliteStorage::addUser(const QString &user, const QString &password) { query.bindValue(":username", user); query.exec(); query.first(); - UserId uid = query.value(0).toUInt(); + UserId uid = query.value(0).toInt(); emit userAdded(uid, user); return uid; } @@ -86,7 +86,7 @@ void SqliteStorage::updateUser(UserId user, const QString &password) { QSqlQuery query(logDb()); query.prepare(queryString("update_userpassword")); - query.bindValue(":userid", user); + query.bindValue(":userid", user.toInt()); query.bindValue(":password", cryptopass); query.exec(); } @@ -94,7 +94,7 @@ void SqliteStorage::updateUser(UserId user, const QString &password) { void SqliteStorage::renameUser(UserId user, const QString &newName) { QSqlQuery query(logDb()); query.prepare(queryString("update_username")); - query.bindValue(":userid", user); + query.bindValue(":userid", user.toInt()); query.bindValue(":username", newName); query.exec(); emit userRenamed(user, newName); @@ -111,7 +111,7 @@ UserId SqliteStorage::validateUser(const QString &user, const QString &password) query.exec(); if(query.first()) { - return query.value(0).toUInt(); + return query.value(0).toInt(); } else { return 0; } @@ -120,19 +120,19 @@ UserId SqliteStorage::validateUser(const QString &user, const QString &password) void SqliteStorage::delUser(UserId user) { QSqlQuery query(logDb()); query.prepare(queryString("delete_backlog_by_uid")); - query.bindValue(":userid", user); + query.bindValue(":userid", user.toInt()); query.exec(); query.prepare(queryString("delete_buffers_by_uid")); - query.bindValue(":userid", user); + query.bindValue(":userid", user.toInt()); query.exec(); query.prepare(queryString("delete_networks_by_uid")); - query.bindValue(":userid", user); + query.bindValue(":userid", user.toInt()); query.exec(); query.prepare(queryString("delete_quasseluser")); - query.bindValue(":userid", user); + query.bindValue(":userid", user.toInt()); query.exec(); // I hate the lack of foreign keys and on delete cascade... :( emit userRemoved(user); @@ -140,8 +140,8 @@ void SqliteStorage::delUser(UserId user) { void SqliteStorage::createBuffer(UserId user, const QString &network, const QString &buffer) { QSqlQuery *createBufferQuery = cachedQuery("insert_buffer"); - createBufferQuery->bindValue(":userid", user); - createBufferQuery->bindValue(":userid2", user); // Qt can't handle same placeholder twice (maybe sqlites fault) + createBufferQuery->bindValue(":userid", user.toInt()); + createBufferQuery->bindValue(":userid2", user.toInt()); // Qt can't handle same placeholder twice (maybe sqlites fault) createBufferQuery->bindValue(":networkname", network); createBufferQuery->bindValue(":buffername", buffer); createBufferQuery->exec(); @@ -149,12 +149,12 @@ void SqliteStorage::createBuffer(UserId user, const QString &network, const QStr if(createBufferQuery->lastError().isValid()) { if(createBufferQuery->lastError().number() == 19) { // Null Constraint violation QSqlQuery *createNetworkQuery = cachedQuery("insert_network"); - createNetworkQuery->bindValue(":userid", user); + createNetworkQuery->bindValue(":userid", user.toInt()); createNetworkQuery->bindValue(":networkname", network); createNetworkQuery->exec(); + Q_ASSERT(watchQuery(createNetworkQuery)); createBufferQuery->exec(); - Q_ASSERT(!createNetworkQuery->lastError().isValid()); - Q_ASSERT(!createBufferQuery->lastError().isValid()); + Q_ASSERT(watchQuery(createBufferQuery)); } else { // do panic! qDebug() << "failed to create Buffer: ErrNo:" << createBufferQuery->lastError().number() << "ErrMsg:" << createBufferQuery->lastError().text(); @@ -163,21 +163,21 @@ void SqliteStorage::createBuffer(UserId user, const QString &network, const QStr } } -uint SqliteStorage::getNetworkId(UserId user, const QString &network) { +NetworkId SqliteStorage::getNetworkId(UserId user, const QString &network) { QSqlQuery query(logDb()); query.prepare("SELECT networkid FROM network " "WHERE userid = :userid AND networkname = :networkname"); - query.bindValue(":userid", user); + query.bindValue(":userid", user.toInt()); query.bindValue(":networkname", network); query.exec(); if(query.first()) - return query.value(0).toUInt(); + return query.value(0).toInt(); else { createBuffer(user, network, ""); query.exec(); if(query.first()) - return query.value(0).toUInt(); + return query.value(0).toInt(); else { qWarning() << "NETWORK NOT FOUND:" << network << "for User:" << user; return 0; @@ -188,12 +188,11 @@ uint SqliteStorage::getNetworkId(UserId user, const QString &network) { BufferInfo SqliteStorage::getBufferInfo(UserId user, const QString &network, const QString &buffer) { BufferInfo bufferid; // TODO: get rid of this hackaround - uint networkId = getNetworkId(user, network); + NetworkId networkId = getNetworkId(user, network); QSqlQuery *getBufferInfoQuery = cachedQuery("select_bufferByName"); - getBufferInfoQuery->bindValue(":networkname", network); - getBufferInfoQuery->bindValue(":userid", user); - getBufferInfoQuery->bindValue(":userid2", user); // Qt can't handle same placeholder twice... though I guess it's sqlites fault + getBufferInfoQuery->bindValue(":networkid", networkId.toInt()); + getBufferInfoQuery->bindValue(":userid", user.toInt()); getBufferInfoQuery->bindValue(":buffername", buffer); getBufferInfoQuery->exec(); @@ -201,11 +200,11 @@ BufferInfo SqliteStorage::getBufferInfo(UserId user, const QString &network, con createBuffer(user, network, buffer); getBufferInfoQuery->exec(); if(getBufferInfoQuery->first()) { - bufferid = BufferInfo(getBufferInfoQuery->value(0).toUInt(), networkId, 0, network, buffer); + bufferid = BufferInfo(getBufferInfoQuery->value(0).toInt(), networkId, 0, network, buffer); emit bufferInfoUpdated(user, bufferid); } } else { - bufferid = BufferInfo(getBufferInfoQuery->value(0).toUInt(), networkId, 0, network, buffer); + bufferid = BufferInfo(getBufferInfoQuery->value(0).toInt(), networkId, 0, network, buffer); } Q_ASSERT(!getBufferInfoQuery->next()); @@ -221,13 +220,13 @@ QList SqliteStorage::requestBuffers(UserId user, QDateTime since) { QList bufferlist; QSqlQuery query(logDb()); query.prepare(queryString("select_buffers")); - query.bindValue(":userid", user); + query.bindValue(":userid", user.toInt()); query.bindValue(":time", time); query.exec(); watchQuery(&query); while(query.next()) { - bufferlist << BufferInfo(query.value(0).toUInt(), query.value(2).toUInt(), 0, query.value(3).toString(), query.value(1).toString()); + bufferlist << BufferInfo(query.value(0).toInt(), query.value(2).toInt(), 0, query.value(3).toString(), query.value(1).toString()); } return bufferlist; } @@ -235,7 +234,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()); + logMessageQuery->bindValue(":bufferid", msg.buffer().uid().toInt()); logMessageQuery->bindValue(":type", msg.type()); logMessageQuery->bindValue(":flags", msg.flags()); logMessageQuery->bindValue(":sender", msg.sender()); @@ -259,13 +258,13 @@ MsgId SqliteStorage::logMessage(Message msg) { QSqlQuery *getLastMessageIdQuery = cachedQuery("select_lastMessage"); getLastMessageIdQuery->bindValue(":time", msg.timestamp().toTime_t()); - getLastMessageIdQuery->bindValue(":bufferid", msg.buffer().uid()); + getLastMessageIdQuery->bindValue(":bufferid", msg.buffer().uid().toInt()); getLastMessageIdQuery->bindValue(":type", msg.type()); getLastMessageIdQuery->bindValue(":sender", msg.sender()); getLastMessageIdQuery->exec(); if(getLastMessageIdQuery->first()) { - return getLastMessageIdQuery->value(0).toUInt(); + 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(); Q_ASSERT(false); @@ -277,16 +276,16 @@ QList SqliteStorage::requestMsgs(BufferInfo buffer, int lastmsgs, int o QList messagelist; // we have to determine the real offset first QSqlQuery *requestMsgsOffsetQuery = cachedQuery("select_messagesOffset"); - requestMsgsOffsetQuery->bindValue(":bufferid", buffer.uid()); + requestMsgsOffsetQuery->bindValue(":bufferid", buffer.uid().toInt()); requestMsgsOffsetQuery->bindValue(":messageid", offset); requestMsgsOffsetQuery->exec(); requestMsgsOffsetQuery->first(); - offset = requestMsgsOffsetQuery->value(0).toUInt(); + offset = requestMsgsOffsetQuery->value(0).toInt(); // now let's select the messages QSqlQuery *requestMsgsQuery = cachedQuery("select_messages"); - requestMsgsQuery->bindValue(":bufferid", buffer.uid()); - requestMsgsQuery->bindValue(":bufferid2", buffer.uid()); // Qt can't handle the same placeholder used twice + 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(); @@ -297,7 +296,7 @@ QList SqliteStorage::requestMsgs(BufferInfo buffer, int lastmsgs, int o requestMsgsQuery->value(5).toString(), requestMsgsQuery->value(4).toString(), requestMsgsQuery->value(3).toUInt()); - msg.setMsgId(requestMsgsQuery->value(0).toUInt()); + msg.setMsgId(requestMsgsQuery->value(0).toInt()); messagelist << msg; } return messagelist; @@ -308,16 +307,16 @@ QList SqliteStorage::requestMsgs(BufferInfo buffer, QDateTime since, in QList messagelist; // we have to determine the real offset first QSqlQuery *requestMsgsSinceOffsetQuery = cachedQuery("select_messagesSinceOffset"); - requestMsgsSinceOffsetQuery->bindValue(":bufferid", buffer.uid()); + requestMsgsSinceOffsetQuery->bindValue(":bufferid", buffer.uid().toInt()); requestMsgsSinceOffsetQuery->bindValue(":since", since.toTime_t()); requestMsgsSinceOffsetQuery->exec(); requestMsgsSinceOffsetQuery->first(); - offset = requestMsgsSinceOffsetQuery->value(0).toUInt(); + offset = requestMsgsSinceOffsetQuery->value(0).toInt(); // now let's select the messages QSqlQuery *requestMsgsSinceQuery = cachedQuery("select_messagesSince"); - requestMsgsSinceQuery->bindValue(":bufferid", buffer.uid()); - requestMsgsSinceQuery->bindValue(":bufferid2", buffer.uid()); + requestMsgsSinceQuery->bindValue(":bufferid", buffer.uid().toInt()); + requestMsgsSinceQuery->bindValue(":bufferid2", buffer.uid().toInt()); requestMsgsSinceQuery->bindValue(":since", since.toTime_t()); requestMsgsSinceQuery->bindValue(":offset", offset); requestMsgsSinceQuery->exec(); @@ -329,7 +328,7 @@ QList SqliteStorage::requestMsgs(BufferInfo buffer, QDateTime since, in requestMsgsSinceQuery->value(5).toString(), requestMsgsSinceQuery->value(4).toString(), requestMsgsSinceQuery->value(3).toUInt()); - msg.setMsgId(requestMsgsSinceQuery->value(0).toUInt()); + msg.setMsgId(requestMsgsSinceQuery->value(0).toInt()); messagelist << msg; } @@ -340,8 +339,8 @@ 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()); - requestMsgRangeQuery->bindValue(":bufferid2", buffer.uid()); + requestMsgRangeQuery->bindValue(":bufferid", buffer.uid().toInt()); + requestMsgRangeQuery->bindValue(":bufferid2", buffer.uid().toInt()); requestMsgRangeQuery->bindValue(":firstmsg", first); requestMsgRangeQuery->bindValue(":lastmsg", last); @@ -352,7 +351,7 @@ QList SqliteStorage::requestMsgRange(BufferInfo buffer, int first, int requestMsgRangeQuery->value(5).toString(), requestMsgRangeQuery->value(4).toString(), requestMsgRangeQuery->value(3).toUInt()); - msg.setMsgId(requestMsgRangeQuery->value(0).toUInt()); + msg.setMsgId(requestMsgRangeQuery->value(0).toInt()); messagelist << msg; }