aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/model/package.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix-data-service/model/package.scm')
-rw-r--r--guix-data-service/model/package.scm19
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