aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/model/utils.scm
diff options
context:
space:
mode:
authorDanjela Lura <danielaluraa@gmail.com>2020-05-28 22:27:48 +0200
committerChristopher Baines <mail@cbaines.net>2020-06-07 20:17:03 +0100
commitb8abe38352ff0513dee2bae87d3c17eba3c84339 (patch)
tree7946c37b66f64a71ad4e3bf8f538cf1f671e54ca /guix-data-service/model/utils.scm
parentf67bea719d07cf48818bc0c2a1adca4edb291cd7 (diff)
downloaddata-service-b8abe38352ff0513dee2bae87d3c17eba3c84339.tar
data-service-b8abe38352ff0513dee2bae87d3c17eba3c84339.tar.gz
Add checks to guard against null data
Signed-off-by: Christopher Baines <mail@cbaines.net>
Diffstat (limited to 'guix-data-service/model/utils.scm')
-rw-r--r--guix-data-service/model/utils.scm22
1 files changed, 13 insertions, 9 deletions
diff --git a/guix-data-service/model/utils.scm b/guix-data-service/model/utils.scm
index 5676c23..79aa7da 100644
--- a/guix-data-service/model/utils.scm
+++ b/guix-data-service/model/utils.scm
@@ -317,10 +317,12 @@ WHERE table_name = $1"
"ANALYZE " temp-table-name))
;; Populate the temporary table
- (with-time-logging (string-append "populating " temp-table-name)
- (exec-query conn
- (insert-sql data
- #:table-name temp-table-name)))
+ (if (null? data)
+ '()
+ (with-time-logging (string-append "populating " temp-table-name)
+ (exec-query conn
+ (insert-sql data
+ #:table-name temp-table-name))))
;; Use the temporary table to find the existing values
(let ((result
(with-time-logging
@@ -336,11 +338,13 @@ WHERE table_name = $1"
result))
;; If not using a temporary table, just do a single SELECT query
- (exec-query->vhash conn
- select-query
- cdr
- (lambda (result)
- (string->number (first result))))))
+ (if (null? data)
+ '()
+ (exec-query->vhash conn
+ select-query
+ cdr
+ (lambda (result)
+ (string->number (first result)))))))
(missing-entries
(filter (lambda (field-values)
(not (vhash-assoc