summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2019-05-14 07:55:17 +0100
committerChristopher Baines <mail@cbaines.net>2019-05-14 07:55:17 +0100
commit28c2d4608149b55d7547eab563e688814f3d7254 (patch)
tree8cf29d257f2fddd577b775aa44313cea9114ebb5
parent721d21ed4dfb09ea8cc6d2f5c1bdf6cd515f383e (diff)
downloaddata-service-28c2d4608149b55d7547eab563e688814f3d7254.tar
data-service-28c2d4608149b55d7547eab563e688814f3d7254.tar.gz
Fix type issues with the location ids
On one code path, they were handled as numbers, whereas elsewhere they were handled as strings. This led to the package-metadata code trying to insert duplicate entries. Instead, just handle them as strings everywhere.
-rw-r--r--guix-data-service/model/location.scm16
-rw-r--r--guix-data-service/model/package-metadata.scm2
-rw-r--r--tests/model-package-metadata.scm12
3 files changed, 20 insertions, 10 deletions
diff --git a/guix-data-service/model/location.scm b/guix-data-service/model/location.scm
index 1a01b9a..9850377 100644
--- a/guix-data-service/model/location.scm
+++ b/guix-data-service/model/location.scm
@@ -42,13 +42,11 @@
(list file
(number->string line)
(number->string column)))
- (((id))
- (string->number id))
+ (((id)) id)
(()
- (string->number
- (caar
- (exec-query conn
- insert-location
- (list file
- (number->string line)
- (number->string column))))))))))
+ (caar
+ (exec-query conn
+ insert-location
+ (list file
+ (number->string line)
+ (number->string column)))))))))
diff --git a/guix-data-service/model/package-metadata.scm b/guix-data-service/model/package-metadata.scm
index 644050e..e83fef9 100644
--- a/guix-data-service/model/package-metadata.scm
+++ b/guix-data-service/model/package-metadata.scm
@@ -92,7 +92,7 @@ WHERE packages.id IN (
(value->quoted-string-or-null synopsis) ","
(value->quoted-string-or-null description) ","
(value->quoted-string-or-null home_page) ","
- (number->string location_id)
+ location_id
")")))
metadata-rows)
",")
diff --git a/tests/model-package-metadata.scm b/tests/model-package-metadata.scm
index 83d77bf..5c0092d 100644
--- a/tests/model-package-metadata.scm
+++ b/tests/model-package-metadata.scm
@@ -34,6 +34,18 @@
conn
(list mock-inferior-package-foo))
((x) (string? x))))
+ #:always-rollback? #t))
+
+ (with-postgresql-transaction
+ conn
+ (lambda (conn)
+ (test-equal "inferior-packages->package-metadata-ids"
+ (inferior-packages->package-metadata-ids
+ conn
+ (list mock-inferior-package-foo))
+ (inferior-packages->package-metadata-ids
+ conn
+ (list mock-inferior-package-foo)))
#:always-rollback? #t))))))
(test-end)