Support filtering by systems and targets when comparing derivations
This commit is contained in:
parent
36a16d356f
commit
3849bb79c5
2 changed files with 38 additions and 8 deletions
|
|
@ -15,9 +15,37 @@
|
||||||
package-data-version-changes
|
package-data-version-changes
|
||||||
package-data-derivation-changes))
|
package-data-derivation-changes))
|
||||||
|
|
||||||
(define (package-differences-data conn base_guix_revision_id target_guix_revision_id)
|
(define* (package-differences-data conn
|
||||||
|
base_guix_revision_id
|
||||||
|
target_guix_revision_id
|
||||||
|
#:key
|
||||||
|
(systems #f)
|
||||||
|
(targets #f))
|
||||||
|
(define extra-constraints
|
||||||
|
(string-append
|
||||||
|
(if systems
|
||||||
|
(string-append
|
||||||
|
" AND package_derivations.system IN ("
|
||||||
|
(string-join (map
|
||||||
|
(lambda (s)
|
||||||
|
(string-append "'" s "'"))
|
||||||
|
systems)
|
||||||
|
", ")
|
||||||
|
")")
|
||||||
|
"")
|
||||||
|
(if targets
|
||||||
|
(string-append
|
||||||
|
" AND package_derivations.target IN ("
|
||||||
|
(string-join (map
|
||||||
|
(lambda (s)
|
||||||
|
(string-append "'" s "'"))
|
||||||
|
targets)
|
||||||
|
", ")
|
||||||
|
")")
|
||||||
|
"")))
|
||||||
|
|
||||||
(define query
|
(define query
|
||||||
"
|
(string-append "
|
||||||
WITH base_packages AS (
|
WITH base_packages AS (
|
||||||
SELECT packages.*, derivations.file_name,
|
SELECT packages.*, derivations.file_name,
|
||||||
package_derivations.system, package_derivations.target
|
package_derivations.system, package_derivations.target
|
||||||
|
|
@ -30,8 +58,8 @@ WITH base_packages AS (
|
||||||
SELECT guix_revision_package_derivations.package_derivation_id
|
SELECT guix_revision_package_derivations.package_derivation_id
|
||||||
FROM guix_revision_package_derivations
|
FROM guix_revision_package_derivations
|
||||||
WHERE revision_id = $1
|
WHERE revision_id = $1
|
||||||
)
|
)" extra-constraints
|
||||||
), target_packages AS (
|
"), target_packages AS (
|
||||||
SELECT packages.*, derivations.file_name,
|
SELECT packages.*, derivations.file_name,
|
||||||
package_derivations.system, package_derivations.target
|
package_derivations.system, package_derivations.target
|
||||||
FROM packages
|
FROM packages
|
||||||
|
|
@ -43,8 +71,8 @@ WITH base_packages AS (
|
||||||
SELECT guix_revision_package_derivations.package_derivation_id
|
SELECT guix_revision_package_derivations.package_derivation_id
|
||||||
FROM guix_revision_package_derivations
|
FROM guix_revision_package_derivations
|
||||||
WHERE revision_id = $2
|
WHERE revision_id = $2
|
||||||
)
|
)" extra-constraints
|
||||||
)
|
")
|
||||||
SELECT base_packages.name, base_packages.version,
|
SELECT base_packages.name, base_packages.version,
|
||||||
base_packages.package_metadata_id, base_packages.file_name,
|
base_packages.package_metadata_id, base_packages.file_name,
|
||||||
base_packages.system, base_packages.target,
|
base_packages.system, base_packages.target,
|
||||||
|
|
@ -62,7 +90,7 @@ WHERE
|
||||||
target_packages.id IS NULL OR
|
target_packages.id IS NULL OR
|
||||||
base_packages.id != target_packages.id OR
|
base_packages.id != target_packages.id OR
|
||||||
base_packages.file_name != target_packages.file_name
|
base_packages.file_name != target_packages.file_name
|
||||||
ORDER BY base_packages.name DESC, base_packages.version, target_packages.name, target_packages.version")
|
ORDER BY base_packages.name DESC, base_packages.version, target_packages.name, target_packages.version"))
|
||||||
|
|
||||||
(exec-query conn query (list base_guix_revision_id target_guix_revision_id)))
|
(exec-query conn query (list base_guix_revision_id target_guix_revision_id)))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -433,7 +433,9 @@
|
||||||
((data
|
((data
|
||||||
(package-differences-data conn
|
(package-differences-data conn
|
||||||
(commit->revision-id conn base-commit)
|
(commit->revision-id conn base-commit)
|
||||||
(commit->revision-id conn target-commit)))
|
(commit->revision-id conn target-commit)
|
||||||
|
#:systems systems
|
||||||
|
#:targets targets))
|
||||||
(names-and-versions
|
(names-and-versions
|
||||||
(package-data->names-and-versions data)))
|
(package-data->names-and-versions data)))
|
||||||
(let-values
|
(let-values
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue