cbaines pushed a commit to branch trunk in repository data-service. commit d60a8a44cbc0efdf1f9194295e22769818ac2a3a Author: Christopher Baines <m...@cbaines.net> AuthorDate: Mon Mar 24 09:32:57 2025 +0000
Make update-derivation-ids-hash-table! more flexible To work with both derivations and names. --- guix-data-service/jobs/load-new-guix-revision.scm | 36 ++++++++++------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/guix-data-service/jobs/load-new-guix-revision.scm b/guix-data-service/jobs/load-new-guix-revision.scm index 38a7969..3daae30 100644 --- a/guix-data-service/jobs/load-new-guix-revision.scm +++ b/guix-data-service/jobs/load-new-guix-revision.scm @@ -996,20 +996,25 @@ (define (update-derivation-ids-hash-table! conn derivation-ids-hash-table - derivation-file-names) - (define derivations-count (vector-length derivation-file-names)) + derivations-or-file-names) + (define derivations-count (vector-length derivations-or-file-names)) (let ((missing-file-names (vector-fold - (lambda (_ result file-name) - (if (and file-name - (hash-ref derivation-ids-hash-table - file-name)) - result - (cons file-name - result))) + (lambda (_ result file-name-or-drv) + (if file-name-or-drv + (let ((file-name + (if (string? file-name-or-drv) + file-name-or-drv + (derivation-file-name file-name-or-drv)))) + (if (hash-ref derivation-ids-hash-table + file-name) + result + (cons file-name + result))) + result)) '() - derivation-file-names))) + derivations-or-file-names))) (simple-format #t "debug: update-derivation-ids-hash-table!: lookup ~A file-names, ~A not cached\n" @@ -1149,16 +1154,7 @@ SELECT 1 FROM derivation_source_file_nars WHERE derivation_source_file_id = $1" (update-derivation-ids-hash-table! conn derivation-ids-hash-table - (let ((file-names-vector - (make-vector (length unfiltered-derivations)))) - (for-each - (lambda (i drv) - (vector-set! file-names-vector - i - (derivation-file-name drv))) - (iota (vector-length file-names-vector)) - unfiltered-derivations) - file-names-vector)) + (list->vector unfiltered-derivations)) (let ((derivations ;; Do this while holding the PostgreSQL connection to