From 6d06954825cfccc2bc50057491d11b3ccb1ef64a Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Fri, 2 Jun 2023 08:33:08 +0200 Subject: [PATCH] fix mysql-related SQL --- .../scripts/github-actions/build-windows.ps1 | 2 +- src/librssguard/database/databasequeries.cpp | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/resources/scripts/github-actions/build-windows.ps1 b/resources/scripts/github-actions/build-windows.ps1 index 14c0bc938..69ac99102 100755 --- a/resources/scripts/github-actions/build-windows.ps1 +++ b/resources/scripts/github-actions/build-windows.ps1 @@ -30,7 +30,7 @@ else { $maria_version = "10.6.12" $maria_link = "https://archive.mariadb.org/mariadb-$maria_version/winx64-packages/mariadb-$maria_version-winx64.zip" $maria_output = "maria.zip" -$cmake_version = "3.26.3" +$cmake_version = "3.26.4" $cmake_link = "https://github.com/Kitware/CMake/releases/download/v$cmake_version/cmake-$cmake_version-windows-x86_64.zip" $cmake_output = "cmake.zip" diff --git a/src/librssguard/database/databasequeries.cpp b/src/librssguard/database/databasequeries.cpp index 744a19413..b0999bd36 100644 --- a/src/librssguard/database/databasequeries.cpp +++ b/src/librssguard/database/databasequeries.cpp @@ -110,10 +110,18 @@ bool DatabaseQueries::assignLabelToMessage(const QSqlDatabase& db, Label* label, QSqlQuery q(db); q.setForwardOnly(true); - // TODO: pro mysql, kde operátor concatenate || není - q.prepare(QSL("UPDATE Messages " - "SET labels = Messages.labels || :label " - "WHERE Messages.custom_id = :message AND account_id = :account_id;")); + + if (db.driverName() == QSL(APP_DB_MYSQL_DRIVER)) { + q.prepare(QSL("UPDATE Messages " + "SET labels = CONCAT(Messages.labels, :label) " + "WHERE Messages.custom_id = :message AND account_id = :account_id;")); + } + else { + q.prepare(QSL("UPDATE Messages " + "SET labels = Messages.labels || :label " + "WHERE Messages.custom_id = :message AND account_id = :account_id;")); + } + q.bindValue(QSL(":label"), QSL("%1.").arg(label->customId())); q.bindValue(QSL(":message"), msg.m_customId.isEmpty() ? QString::number(msg.m_id) : msg.m_customId); q.bindValue(QSL(":account_id"), label->getParentServiceRoot()->accountId());