Change select-build procedures to avoid join issues
The number of build_status rows coming back was being amplified by the INNER JOIN, using a subquery guards against this.
This commit is contained in:
parent
0242bc6a2e
commit
1e2fefa7cf
1 changed files with 22 additions and 18 deletions
|
|
@ -227,18 +227,20 @@ ORDER BY latest_build_status.timestamp DESC")
|
|||
"
|
||||
SELECT build_servers.url,
|
||||
builds.derivation_file_name,
|
||||
JSON_AGG(
|
||||
(
|
||||
SELECT JSON_AGG(
|
||||
json_build_object(
|
||||
'timestamp', build_status.timestamp,
|
||||
'status', build_status.status
|
||||
)
|
||||
ORDER BY build_status.timestamp
|
||||
)
|
||||
FROM build_status
|
||||
WHERE build_status.build_id = builds.id
|
||||
) AS statuses
|
||||
FROM builds
|
||||
INNER JOIN build_servers
|
||||
ON build_servers.id = builds.build_server_id
|
||||
INNER JOIN build_status
|
||||
ON builds.id = build_status.build_id
|
||||
INNER JOIN derivations_by_output_details_set
|
||||
ON builds.derivation_output_details_set_id =
|
||||
derivations_by_output_details_set.derivation_output_details_set_id
|
||||
|
|
@ -246,7 +248,7 @@ INNER JOIN derivations
|
|||
ON derivations.id = derivations_by_output_details_set.derivation_id
|
||||
WHERE build_server_id = $1 AND
|
||||
builds.build_server_build_id = $2
|
||||
GROUP BY build_servers.url, builds.derivation_file_name")
|
||||
GROUP BY builds.id, build_servers.url, builds.derivation_file_name")
|
||||
|
||||
(match (exec-query conn
|
||||
query
|
||||
|
|
@ -265,18 +267,20 @@ GROUP BY build_servers.url, builds.derivation_file_name")
|
|||
"
|
||||
SELECT build_servers.url,
|
||||
builds.derivation_file_name,
|
||||
JSON_AGG(
|
||||
(
|
||||
SELECT JSON_AGG(
|
||||
json_build_object(
|
||||
'timestamp', build_status.timestamp,
|
||||
'status', build_status.status
|
||||
)
|
||||
ORDER BY build_status.timestamp
|
||||
)
|
||||
FROM build_status
|
||||
WHERE build_status.build_id = builds.id
|
||||
) AS statuses
|
||||
FROM builds
|
||||
INNER JOIN build_servers
|
||||
ON build_servers.id = builds.build_server_id
|
||||
INNER JOIN build_status
|
||||
ON builds.id = build_status.build_id
|
||||
INNER JOIN derivations_by_output_details_set
|
||||
ON builds.derivation_output_details_set_id =
|
||||
derivations_by_output_details_set.derivation_output_details_set_id
|
||||
|
|
@ -284,7 +288,7 @@ INNER JOIN derivations
|
|||
ON derivations.id = derivations_by_output_details_set.derivation_id
|
||||
WHERE build_server_id = $1 AND
|
||||
derivations.file_name = $2
|
||||
GROUP BY build_servers.url, builds.derivation_file_name")
|
||||
GROUP BY builds.id, build_servers.url, builds.derivation_file_name")
|
||||
|
||||
(match (exec-query conn
|
||||
query
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue