aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/model/utils.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix-data-service/model/utils.scm')
-rw-r--r--guix-data-service/model/utils.scm52
1 files changed, 27 insertions, 25 deletions
diff --git a/guix-data-service/model/utils.scm b/guix-data-service/model/utils.scm
index 79aa7da..e6c4a2b 100644
--- a/guix-data-service/model/utils.scm
+++ b/guix-data-service/model/utils.scm
@@ -365,28 +365,30 @@ WHERE table_name = $1"
(exec-query conn (insert-sql missing-entries)))))
(new-entries-lookup-vhash
(two-lists->vhash missing-entries
- new-entries)))
-
- (if sets-of-data?
- (map (lambda (field-value-lists)
- ;; Normalise the result at this point, ensuring that the id's
- ;; in the set are sorted
- (sort
- (map (lambda (field-values)
- (cdr
- (or (vhash-assoc (normalise-values field-values)
- existing-entries)
- (vhash-assoc field-values
- new-entries-lookup-vhash)
- (error "missing entry" field-values))))
- field-value-lists)
- <))
- data)
- (map (lambda (field-values)
- (cdr
- (or (vhash-assoc (normalise-values field-values)
- existing-entries)
- (vhash-assoc field-values
- new-entries-lookup-vhash)
- (error "missing entry" field-values))))
- data))))
+ new-entries))
+ (all-ids
+ (if sets-of-data?
+ (map (lambda (field-value-lists)
+ ;; Normalise the result at this point, ensuring that the id's
+ ;; in the set are sorted
+ (sort
+ (map (lambda (field-values)
+ (cdr
+ (or (vhash-assoc (normalise-values field-values)
+ existing-entries)
+ (vhash-assoc field-values
+ new-entries-lookup-vhash)
+ (error "missing entry" field-values))))
+ field-value-lists)
+ <))
+ data)
+ (map (lambda (field-values)
+ (cdr
+ (or (vhash-assoc (normalise-values field-values)
+ existing-entries)
+ (vhash-assoc field-values
+ new-entries-lookup-vhash)
+ (error "missing entry" field-values))))
+ data))))
+ (values all-ids
+ new-entries)))