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,
|
SELECT build_servers.url,
|
||||||
builds.derivation_file_name,
|
builds.derivation_file_name,
|
||||||
JSON_AGG(
|
(
|
||||||
json_build_object(
|
SELECT JSON_AGG(
|
||||||
'timestamp', build_status.timestamp,
|
json_build_object(
|
||||||
'status', build_status.status
|
'timestamp', build_status.timestamp,
|
||||||
)
|
'status', build_status.status
|
||||||
ORDER BY build_status.timestamp
|
)
|
||||||
|
ORDER BY build_status.timestamp
|
||||||
|
)
|
||||||
|
FROM build_status
|
||||||
|
WHERE build_status.build_id = builds.id
|
||||||
) AS statuses
|
) AS statuses
|
||||||
FROM builds
|
FROM builds
|
||||||
INNER JOIN build_servers
|
INNER JOIN build_servers
|
||||||
ON build_servers.id = builds.build_server_id
|
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
|
INNER JOIN derivations_by_output_details_set
|
||||||
ON builds.derivation_output_details_set_id =
|
ON builds.derivation_output_details_set_id =
|
||||||
derivations_by_output_details_set.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
|
ON derivations.id = derivations_by_output_details_set.derivation_id
|
||||||
WHERE build_server_id = $1 AND
|
WHERE build_server_id = $1 AND
|
||||||
builds.build_server_build_id = $2
|
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
|
(match (exec-query conn
|
||||||
query
|
query
|
||||||
|
|
@ -265,18 +267,20 @@ GROUP BY build_servers.url, builds.derivation_file_name")
|
||||||
"
|
"
|
||||||
SELECT build_servers.url,
|
SELECT build_servers.url,
|
||||||
builds.derivation_file_name,
|
builds.derivation_file_name,
|
||||||
JSON_AGG(
|
(
|
||||||
json_build_object(
|
SELECT JSON_AGG(
|
||||||
'timestamp', build_status.timestamp,
|
json_build_object(
|
||||||
'status', build_status.status
|
'timestamp', build_status.timestamp,
|
||||||
)
|
'status', build_status.status
|
||||||
ORDER BY build_status.timestamp
|
)
|
||||||
|
ORDER BY build_status.timestamp
|
||||||
|
)
|
||||||
|
FROM build_status
|
||||||
|
WHERE build_status.build_id = builds.id
|
||||||
) AS statuses
|
) AS statuses
|
||||||
FROM builds
|
FROM builds
|
||||||
INNER JOIN build_servers
|
INNER JOIN build_servers
|
||||||
ON build_servers.id = builds.build_server_id
|
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
|
INNER JOIN derivations_by_output_details_set
|
||||||
ON builds.derivation_output_details_set_id =
|
ON builds.derivation_output_details_set_id =
|
||||||
derivations_by_output_details_set.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
|
ON derivations.id = derivations_by_output_details_set.derivation_id
|
||||||
WHERE build_server_id = $1 AND
|
WHERE build_server_id = $1 AND
|
||||||
derivations.file_name = $2
|
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
|
(match (exec-query conn
|
||||||
query
|
query
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue