aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service/model
diff options
context:
space:
mode:
Diffstat (limited to 'guix-data-service/model')
-rw-r--r--guix-data-service/model/lint-warning.scm30
-rw-r--r--guix-data-service/model/utils.scm22
2 files changed, 29 insertions, 23 deletions
diff --git a/guix-data-service/model/lint-warning.scm b/guix-data-service/model/lint-warning.scm
index f22681b..6c83773 100644
--- a/guix-data-service/model/lint-warning.scm
+++ b/guix-data-service/model/lint-warning.scm
@@ -36,20 +36,22 @@
(define (insert-guix-revision-lint-warnings conn
guix-revision-id
lint-warning-ids)
- (exec-query
- conn
- (string-append
- "INSERT INTO guix_revision_lint_warnings (lint_warning_id, guix_revision_id) "
- "VALUES "
- (string-join
- (map (lambda (lint-warning-id)
- (simple-format
- #f
- "(~A, ~A)"
- lint-warning-id
- guix-revision-id))
- lint-warning-ids)
- ", "))))
+ (if (null? lint-warning-ids)
+ '()
+ (exec-query
+ conn
+ (string-append
+ "INSERT INTO guix_revision_lint_warnings (lint_warning_id, guix_revision_id) "
+ "VALUES "
+ (string-join
+ (map (lambda (lint-warning-id)
+ (simple-format
+ #f
+ "(~A, ~A)"
+ lint-warning-id
+ guix-revision-id))
+ lint-warning-ids)
+ ", ")))))
(define* (lint-warnings-for-guix-revision conn commit-hash
#:key
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