diff options
Diffstat (limited to 'guix-data-service/model/utils.scm')
-rw-r--r-- | guix-data-service/model/utils.scm | 52 |
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))) |