X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fpostgresqlstorage.h;h=78ddc9da4ff99711c530a4a6dad0db1e3f36f6ba;hp=a90c881594a2985cf179b502ab9c6097a9486137;hb=b134e777b822b929a78455fd92146bf7443e9aa1;hpb=c1cf157116de7fc3da96203aa6f03c38c7ebb650 diff --git a/src/core/postgresqlstorage.h b/src/core/postgresqlstorage.h index a90c8815..78ddc9da 100644 --- a/src/core/postgresqlstorage.h +++ b/src/core/postgresqlstorage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2018 by the Quassel Project * + * Copyright (C) 2005-2020 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -63,14 +63,14 @@ public slots: IdentityId createIdentity(UserId user, CoreIdentity& identity) override; bool updateIdentity(UserId user, const CoreIdentity& identity) override; void removeIdentity(UserId user, IdentityId identityId) override; - QList identities(UserId user) override; + std::vector identities(UserId user) override; /* Network handling */ NetworkId createNetwork(UserId user, const NetworkInfo& info) override; bool updateNetwork(UserId user, const NetworkInfo& info) override; bool removeNetwork(UserId user, const NetworkId& networkId) override; - QList networks(UserId user) override; - QList connectedNetworks(UserId user) override; + std::vector networks(UserId user) override; + std::vector connectedNetworks(UserId user) override; void setNetworkConnected(UserId user, const NetworkId& networkId, bool isConnected) override; /* persistent channels */ @@ -87,11 +87,12 @@ public slots: /* Buffer handling */ BufferInfo bufferInfo(UserId user, const NetworkId& networkId, BufferInfo::Type type, const QString& buffer = "", bool create = true) override; BufferInfo getBufferInfo(UserId user, const BufferId& bufferId) override; - QList requestBuffers(UserId user) override; - QList requestBufferIdsForNetwork(UserId user, NetworkId networkId) override; + std::vector requestBuffers(UserId user) override; + std::vector requestBufferIdsForNetwork(UserId user, NetworkId networkId) override; bool removeBuffer(const UserId& user, const BufferId& bufferId) override; bool renameBuffer(const UserId& user, const BufferId& bufferId, const QString& newName) override; bool mergeBuffersPermanently(const UserId& user, const BufferId& bufferId1, const BufferId& bufferId2) override; + QHash bufferLastMsgIds(UserId user) override; void setBufferLastSeenMsg(UserId user, const BufferId& bufferId, const MsgId& msgId) override; QHash bufferLastSeenMsgIds(UserId user) override; void setBufferMarkerLineMsg(UserId user, const BufferId& bufferId, const MsgId& msgId) override; @@ -108,21 +109,21 @@ public slots: /* Message handling */ bool logMessage(Message& msg) override; bool logMessages(MessageList& msgs) override; - QList requestMsgs(UserId user, BufferId bufferId, MsgId first = -1, MsgId last = -1, int limit = -1) override; - QList requestMsgsFiltered(UserId user, - BufferId bufferId, - MsgId first = -1, - MsgId last = -1, - int limit = -1, - Message::Types type = Message::Types{-1}, - Message::Flags flags = Message::Flags{-1}) override; - QList requestAllMsgs(UserId user, MsgId first = -1, MsgId last = -1, int limit = -1) override; - QList requestAllMsgsFiltered(UserId user, - MsgId first = -1, - MsgId last = -1, - int limit = -1, - Message::Types type = Message::Types{-1}, - Message::Flags flags = Message::Flags{-1}) override; + std::vector requestMsgs(UserId user, BufferId bufferId, MsgId first = -1, MsgId last = -1, int limit = -1) override; + std::vector requestMsgsFiltered(UserId user, + BufferId bufferId, + MsgId first = -1, + MsgId last = -1, + int limit = -1, + Message::Types type = Message::Types{-1}, + Message::Flags flags = Message::Flags{-1}) override; + std::vector requestAllMsgs(UserId user, MsgId first = -1, MsgId last = -1, int limit = -1) override; + std::vector requestAllMsgsFiltered(UserId user, + MsgId first = -1, + MsgId last = -1, + int limit = -1, + Message::Types type = Message::Types{-1}, + Message::Flags flags = Message::Flags{-1}) override; /* Sysident handling */ QMap getAllAuthUserNames() override; @@ -137,8 +138,24 @@ protected: QString userName() override { return _userName; } QString password() override { return _password; } int installedSchemaVersion() override; - bool updateSchemaVersion(int newVersion) override; + bool updateSchemaVersion(int newVersion, bool clearUpgradeStep) override; bool setupSchemaVersion(int version) override; + + /** + * Gets the last successful schema upgrade step, or an empty string if no upgrade is in progress + * + * @return Filename of last successful schema upgrade query, or empty string if not upgrading + */ + QString schemaVersionUpgradeStep() override; + + /** + * Sets the last successful schema upgrade step + * + * @param upgradeQuery The filename of the last successful schema upgrade query + * @return True if successfully set, otherwise false + */ + virtual bool setSchemaVersionUpgradeStep(QString upgradeQuery) override; + void safeExec(QSqlQuery& query); bool beginTransaction(QSqlDatabase& db);