X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fpostgresqlstorage.cpp;h=88bc86ce93f342c08039cc660d3f440f332ffb22;hp=9374a48f0204095f08f5df7a546ddc7ec0e60b90;hb=1a5c1814a0c52f6f35e65c7033b2f896bf1188e3;hpb=a95ad2de573027f9bee36db972bcae4195168d0c diff --git a/src/core/postgresqlstorage.cpp b/src/core/postgresqlstorage.cpp index 9374a48f..88bc86ce 100644 --- a/src/core/postgresqlstorage.cpp +++ b/src/core/postgresqlstorage.cpp @@ -527,13 +527,8 @@ IdentityId PostgreSqlStorage::createIdentity(UserId user, CoreIdentity& identity query.bindValue(":kickreason", identity.kickReason()); query.bindValue(":partreason", identity.partReason()); query.bindValue(":quitreason", identity.quitReason()); -#ifdef HAVE_SSL query.bindValue(":sslcert", identity.sslCert().toPem()); query.bindValue(":sslkey", identity.sslKey().toPem()); -#else - query.bindValue(":sslcert", QByteArray()); - query.bindValue(":sslkey", QByteArray()); -#endif safeExec(query); if (!watchQuery(query)) { db.rollback(); @@ -610,13 +605,8 @@ bool PostgreSqlStorage::updateIdentity(UserId user, const CoreIdentity& identity query.bindValue(":kickreason", identity.kickReason()); query.bindValue(":partreason", identity.partReason()); query.bindValue(":quitreason", identity.quitReason()); -#ifdef HAVE_SSL query.bindValue(":sslcert", identity.sslCert().toPem()); query.bindValue(":sslkey", identity.sslKey().toPem()); -#else - query.bindValue(":sslcert", QByteArray()); - query.bindValue(":sslkey", QByteArray()); -#endif query.bindValue(":identityid", identity.id().toInt()); safeExec(query); @@ -717,10 +707,8 @@ std::vector PostgreSqlStorage::identities(UserId user) identity.setKickReason(query.value(15).toString()); identity.setPartReason(query.value(16).toString()); identity.setQuitReason(query.value(17).toString()); -#ifdef HAVE_SSL identity.setSslCert(query.value(18).toByteArray()); identity.setSslKey(query.value(19).toByteArray()); -#endif nickQuery.bindValue(":identityid", identity.id().toInt()); QList nicks; @@ -1385,6 +1373,34 @@ bool PostgreSqlStorage::mergeBuffersPermanently(const UserId& user, const Buffer return true; } +QHash PostgreSqlStorage::bufferLastMsgIds(UserId user) +{ + QHash lastMsgHash; + + QSqlDatabase db = logDb(); + if (!beginReadOnlyTransaction(db)) { + qWarning() << "PostgreSqlStorage::bufferLastMsgIds(): cannot start read only transaction!"; + qWarning() << " -" << qPrintable(db.lastError().text()); + return lastMsgHash; + } + + QSqlQuery query(db); + query.prepare(queryString("select_buffer_last_messages")); + query.bindValue(":userid", user.toInt()); + safeExec(query); + if (!watchQuery(query)) { + db.rollback(); + return lastMsgHash; + } + + while (query.next()) { + lastMsgHash[query.value(0).toInt()] = query.value(1).toLongLong(); + } + + db.commit(); + return lastMsgHash; +} + void PostgreSqlStorage::setBufferLastSeenMsg(UserId user, const BufferId& bufferId, const MsgId& msgId) { QSqlQuery query(logDb());