guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

09/13: Split and instrument parts of inferior-packages->package-metadata


From: Christopher Baines
Subject: 09/13: Split and instrument parts of inferior-packages->package-metadata-ids
Date: Fri, 19 Jan 2024 04:57:47 -0500 (EST)

cbaines pushed a commit to branch master
in repository data-service.

commit 6842a432d668f3e42de0b416813f359beef9ae6f
Author: Christopher Baines <mail@cbaines.net>
AuthorDate: Thu Jan 18 14:42:48 2024 +0000

    Split and instrument parts of inferior-packages->package-metadata-ids
    
    As parts of it are slow.
---
 guix-data-service/model/package-metadata.scm | 51 ++++++++++++++++------------
 1 file changed, 29 insertions(+), 22 deletions(-)

diff --git a/guix-data-service/model/package-metadata.scm 
b/guix-data-service/model/package-metadata.scm
index 4372d8f..aaaee68 100644
--- a/guix-data-service/model/package-metadata.scm
+++ b/guix-data-service/model/package-metadata.scm
@@ -400,28 +400,35 @@ WHERE packages.id IN (
      package_description_set_id
      package_synopsis_set_id)
 
-   (map (match-lambda*
-          (((home-page
-             location
-             package-description-data
-             package-synopsis-data)
-            license-set-id)
-
-           (list (if (string? home-page)
-                     home-page
-                     NULL)
-                 (location->location-id
-                  conn
-                  location)
-                 license-set-id
-                 (package-description-data->package-description-set-id
-                  conn
-                  package-description-data)
-                 (package-synopsis-data->package-synopsis-set-id
-                  conn
-                  package-synopsis-data))))
-        package-metadata
-        license-set-ids)
+   (zip
+    (map (match-lambda
+           ((home-page rest ...)
+            (if (string? home-page)
+                home-page
+                NULL)))
+         package-metadata)
+    (with-time-logging "preparing location ids"
+      (map (match-lambda
+             ((_ location rest ...)
+              (location->location-id
+               conn
+               location)))
+           package-metadata))
+    license-set-ids
+    (with-time-logging "preparing package description set ids"
+      (map (match-lambda
+             ((_ _ package-description-data _)
+              (package-description-data->package-description-set-id
+               conn
+               package-description-data)))
+           package-metadata))
+    (with-time-logging "preparing package synopsis set ids"
+      (map (match-lambda
+             ((_ _ _ package-synopsis-data)
+              (package-synopsis-data->package-synopsis-set-id
+               conn
+               package-synopsis-data)))
+           package-metadata)))
    ;; There can be duplicated entires in package-metadata, for example where
    ;; you have one package definition which interits from another, and just
    ;; overrides the version and the source, the package_metadata entries for



reply via email to

[Prev in Thread] Current Thread [Next in Thread]