From 76e2ea69c06cea8a1e4db2c897661f0d20045bd7 Mon Sep 17 00:00:00 2001 From: lfjnascimento Date: Fri, 5 Jul 2024 16:19:07 -0300 Subject: [PATCH] fix: tree list query was count builds multiple times --- backend/kernelCI_app/views.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/backend/kernelCI_app/views.py b/backend/kernelCI_app/views.py index d88a051..82f3544 100644 --- a/backend/kernelCI_app/views.py +++ b/backend/kernelCI_app/views.py @@ -16,11 +16,11 @@ def get(self, _): f""" SELECT checkouts.git_commit_hash AS id, - COUNT(CASE WHEN builds.valid = true THEN 1 END) AS valid_builds, - COUNT(CASE WHEN builds.valid = false THEN 1 END) AS invalid_builds, - SUM(CASE WHEN builds.valid IS NULL AND builds.id IS NOT NULL THEN 1 ELSE 0 END) + COUNT(DISTINCT CASE WHEN builds.valid = true THEN builds.id END) AS valid_builds, + COUNT(DISTINCT CASE WHEN builds.valid = false THEN builds.id END) AS invalid_builds, + COUNT(DISTINCT CASE WHEN builds.valid IS NULL AND builds.id IS NOT NULL THEN builds.id END) AS null_builds, - COUNT(builds.id) AS total_builds, + COUNT(DISTINCT builds.id) AS total_builds, COUNT(CASE WHEN tests.status = 'FAIL' THEN 1 END) AS fail_tests, COUNT(CASE WHEN tests.status = 'ERROR' THEN 1 END) AS error_tests, COUNT(CASE WHEN tests.status = 'MISS' THEN 1 END) AS miss_tests, @@ -36,8 +36,7 @@ def get(self, _): builds ON builds.checkout_id = checkouts.id LEFT JOIN tests ON tests.build_id = builds.id - WHERE - checkouts.git_commit_hash IN ({placeholders}) + WHERE checkouts.git_commit_hash IN ({placeholders}) GROUP BY checkouts.git_commit_hash; """,