From a5b7e7e5f34e56ae2a4e9ed308da54d9c0357f21 Mon Sep 17 00:00:00 2001 From: emeric Date: Wed, 17 Apr 2024 19:27:51 +0200 Subject: [PATCH] Added some hints for the query planner for bad quality indexes --- src/libs/database/impl/Cluster.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/libs/database/impl/Cluster.cpp b/src/libs/database/impl/Cluster.cpp index e92d9faa..7c9a3d3f 100644 --- a/src/libs/database/impl/Cluster.cpp +++ b/src/libs/database/impl/Cluster.cpp @@ -39,7 +39,8 @@ namespace lms::db { session.checkReadTransaction(); - auto query{ session.getDboSession()->query("SELECT DISTINCT " + std::string{ itemToSelect } + " FROM cluster c") }; + auto query{ session.getDboSession()->query("SELECT " + std::string{ itemToSelect } + " FROM cluster c") }; + query.groupBy("c.id"); if (params.track.isValid() || params.release.isValid()) { @@ -56,7 +57,7 @@ namespace lms::db assert(!params.clusterType.isValid() || params.clusterTypeName.empty()); if (params.clusterType.isValid()) - query.where("c.cluster_type_id = ?").bind(params.clusterType); + query.where("+c.cluster_type_id = ?").bind(params.clusterType); // Exclude this since the query planner does not do a good job when db is not analyzed else if (!params.clusterTypeName.empty()) query.where("c_t.name = ?").bind(params.clusterTypeName);