Improve performance of select-fixed-output-package-derivations-in-revision
This commit is contained in:
parent
a20b929e90
commit
1a0eaeb672
1 changed files with 13 additions and 30 deletions
|
|
@ -35,6 +35,8 @@
|
||||||
#:use-module (guix-data-service utils)
|
#:use-module (guix-data-service utils)
|
||||||
#:use-module (guix-data-service database)
|
#:use-module (guix-data-service database)
|
||||||
#:use-module (guix-data-service model utils)
|
#:use-module (guix-data-service model utils)
|
||||||
|
#:use-module (guix-data-service model guix-revision)
|
||||||
|
#:use-module (guix-data-service model guix-revision-package-derivation)
|
||||||
#:use-module (guix-data-service model system)
|
#:use-module (guix-data-service model system)
|
||||||
#:export (valid-targets
|
#:export (valid-targets
|
||||||
count-derivations
|
count-derivations
|
||||||
|
|
@ -641,28 +643,12 @@ ORDER BY derivations.file_name
|
||||||
latest-build-status)
|
latest-build-status)
|
||||||
(define query
|
(define query
|
||||||
(string-append
|
(string-append
|
||||||
|
(get-sql-to-select-package-and-related-derivations-for-revision
|
||||||
|
conn
|
||||||
|
(commit->revision-id conn commit)
|
||||||
|
#:system-id (system->system-id conn system)
|
||||||
|
#:target target)
|
||||||
"
|
"
|
||||||
WITH RECURSIVE all_derivations(id) AS (
|
|
||||||
SELECT package_derivations.derivation_id
|
|
||||||
FROM package_derivations
|
|
||||||
INNER JOIN systems
|
|
||||||
ON package_derivations.system_id = systems.id
|
|
||||||
INNER JOIN guix_revision_package_derivations
|
|
||||||
ON package_derivations.id =
|
|
||||||
guix_revision_package_derivations.package_derivation_id
|
|
||||||
INNER JOIN guix_revisions
|
|
||||||
ON guix_revision_package_derivations.revision_id = guix_revisions.id
|
|
||||||
WHERE guix_revisions.commit = $1
|
|
||||||
AND systems.system = $2
|
|
||||||
AND package_derivations.target = $3
|
|
||||||
UNION
|
|
||||||
SELECT derivation_outputs.derivation_id
|
|
||||||
FROM all_derivations
|
|
||||||
INNER JOIN derivation_inputs
|
|
||||||
ON all_derivations.id = derivation_inputs.derivation_id
|
|
||||||
INNER JOIN derivation_outputs
|
|
||||||
ON derivation_inputs.derivation_output_id = derivation_outputs.id
|
|
||||||
)
|
|
||||||
SELECT DISTINCT ON (derivations.file_name)
|
SELECT DISTINCT ON (derivations.file_name)
|
||||||
derivations.file_name,
|
derivations.file_name,
|
||||||
(
|
(
|
||||||
|
|
@ -679,9 +665,9 @@ SELECT DISTINCT ON (derivations.file_name)
|
||||||
) AS latest_build
|
) AS latest_build
|
||||||
FROM all_derivations
|
FROM all_derivations
|
||||||
INNER JOIN derivations
|
INNER JOIN derivations
|
||||||
ON all_derivations.id = derivations.id
|
ON all_derivations.derivation_id = derivations.id
|
||||||
INNER JOIN derivation_outputs
|
INNER JOIN derivation_outputs
|
||||||
ON all_derivations.id = derivation_outputs.derivation_id
|
ON all_derivations.derivation_id = derivation_outputs.derivation_id
|
||||||
INNER JOIN derivation_output_details
|
INNER JOIN derivation_output_details
|
||||||
ON derivation_outputs.derivation_output_details_id = derivation_output_details.id
|
ON derivation_outputs.derivation_output_details_id = derivation_output_details.id
|
||||||
LEFT JOIN builds
|
LEFT JOIN builds
|
||||||
|
|
@ -695,18 +681,18 @@ LEFT JOIN latest_build_status
|
||||||
WHERE derivation_output_details.hash IS NOT NULL"
|
WHERE derivation_output_details.hash IS NOT NULL"
|
||||||
(if after-derivation-file-name
|
(if after-derivation-file-name
|
||||||
"
|
"
|
||||||
AND derivations.file_name > $5"
|
AND derivations.file_name > $2"
|
||||||
"")
|
"")
|
||||||
(if latest-build-status
|
(if latest-build-status
|
||||||
(simple-format
|
(simple-format
|
||||||
#f
|
#f
|
||||||
"
|
"
|
||||||
AND latest_build_status.status = $~A"
|
AND latest_build_status.status = $~A"
|
||||||
(if after-derivation-file-name 6 5))
|
(if after-derivation-file-name 3 2))
|
||||||
"")
|
"")
|
||||||
"
|
"
|
||||||
ORDER BY derivations.file_name, latest_build_status.timestamp DESC
|
ORDER BY derivations.file_name, latest_build_status.timestamp DESC
|
||||||
LIMIT $4"))
|
LIMIT $1"))
|
||||||
|
|
||||||
(map (match-lambda
|
(map (match-lambda
|
||||||
((derivation_file_name latest_build)
|
((derivation_file_name latest_build)
|
||||||
|
|
@ -721,10 +707,7 @@ LIMIT $4"))
|
||||||
(exec-query-with-null-handling
|
(exec-query-with-null-handling
|
||||||
conn
|
conn
|
||||||
query
|
query
|
||||||
`(,commit
|
`(,(number->string (or limit-results 999999)) ; TODO
|
||||||
,system
|
|
||||||
,target
|
|
||||||
,(number->string (or limit-results 999999)) ; TODO
|
|
||||||
,@(if after-derivation-file-name
|
,@(if after-derivation-file-name
|
||||||
(list after-derivation-file-name)
|
(list after-derivation-file-name)
|
||||||
'())
|
'())
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue