From: Manuel Nickschas Date: Wed, 6 May 2015 08:11:49 +0000 (+0200) Subject: Merge pull request #126 from mamarley/insertuserracefix X-Git-Tag: travis-deploy-test~568 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=92490c7390f21d59a0df540c4bdcbb1de69e7e8e;hp=8e2f578b3d83d2dd7b6f2ea64d350693073ffed1 Merge pull request #126 from mamarley/insertuserracefix Fix SQL errors caused by sender insertion from multiple threads --- diff --git a/src/core/postgresqlstorage.cpp b/src/core/postgresqlstorage.cpp index 68cf2544..e7a71e7b 100644 --- a/src/core/postgresqlstorage.cpp +++ b/src/core/postgresqlstorage.cpp @@ -1381,8 +1381,7 @@ bool PostgreSqlStorage::logMessage(Message &msg) if (addSenderQuery.lastError().isValid()) { rollbackSavePoint("sender_sp1", db); - getSenderIdQuery.prepare(getSenderIdQuery.lastQuery()); - safeExec(getSenderIdQuery); + getSenderIdQuery = executePreparedQuery("select_senderid", msg.sender(), db); watchQuery(getSenderIdQuery); getSenderIdQuery.first(); senderId = getSenderIdQuery.value(0).toInt(); @@ -1452,8 +1451,7 @@ bool PostgreSqlStorage::logMessages(MessageList &msgs) if (addSenderQuery.lastError().isValid()) { // seems it was inserted meanwhile... by a different thread rollbackSavePoint("sender_sp", db); - selectSenderQuery.prepare(selectSenderQuery.lastQuery()); - safeExec(selectSenderQuery); + selectSenderQuery = executePreparedQuery("select_senderid", sender, db); watchQuery(selectSenderQuery); selectSenderQuery.first(); senderIdList << selectSenderQuery.value(0).toInt();