diff options
Diffstat (limited to 'guix-data-service/model/package.scm')
-rw-r--r-- | guix-data-service/model/package.scm | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/guix-data-service/model/package.scm b/guix-data-service/model/package.scm index 8a6bb94..1a41a88 100644 --- a/guix-data-service/model/package.scm +++ b/guix-data-service/model/package.scm @@ -11,6 +11,7 @@ count-packages-in-revision inferior-packages->package-ids + select-package-versions-for-revision package-versions-for-branch)) (define (select-existing-package-entries package-entries) @@ -184,6 +185,24 @@ WHERE packages.id IN ( '(name version package_metadata_id) package-entries)) +(define (select-package-versions-for-revision conn + commit + package-name) + (define query " +SELECT DISTINCT version FROM packages +INNER JOIN package_derivations + ON packages.id = package_derivations.package_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 packages.name = $2 +ORDER BY version") + + (map + car + (exec-query conn query (list commit package-name)))) + (define (package-versions-for-branch conn git-repository-id branch-name |