Tweak using vectors in insert-derivation-outputs

This commit is contained in:
Christopher Baines 2025-03-17 10:34:06 +00:00
parent b904fdb161
commit 7fe042498f

View file

@ -1048,46 +1048,47 @@ ON CONFLICT DO NOTHING"
(number->string derivation_output_details_set_id))))
(let* ((derivation-outputs
(map cdr names-and-derivation-outputs))
(derivation-output-paths
(map derivation-output-path
derivation-outputs))
(derivation-output-names
(map car names-and-derivation-outputs))
(map cdr names-and-derivation-outputs))
(derivation-output-paths
(map derivation-output-path
derivation-outputs))
(derivation-output-details-ids
(derivation-output-details->derivation-output-details-ids
conn
(map
(match-lambda
(($ <derivation-output> path hash-algo hash recursive?)
`((path . ,path)
(hash_algorithm . ,(or (and=> hash-algo symbol->string)
NULL))
(hash . ,(or (and=> hash bytevector->base16-string)
NULL))
(recursive . ,recursive?))))
derivation-outputs))))
(derivation-output-details-ids
(derivation-output-details->derivation-output-details-ids
conn
(map
(match-lambda
(($ <derivation-output> path hash-algo hash recursive?)
`((path . ,path)
(hash_algorithm . ,(or (and=> hash-algo symbol->string)
NULL))
(hash . ,(or (and=> hash bytevector->base16-string)
NULL))
(recursive . ,recursive?))))
derivation-outputs))))
(insert-missing-data
conn
"derivation_outputs"
'(derivation_id name derivation_output_details_id)
(list->vector
(map (lambda (output-name derivation-output-details-id)
(list derivation-id
output-name
derivation-output-details-id))
derivation-output-names
(vector->list derivation-output-details-ids))))
(insert-into-derivations-by-output-details-set
(derivation-output-details-ids->derivation-output-details-set-id
conn
derivation-output-details-ids))
(insert-missing-data
conn
"derivation_outputs"
'(derivation_id name derivation_output_details_id)
(let ((vec
(list->vector
(map car names-and-derivation-outputs))))
(vector-map!
(lambda (_ output-name derivation-output-details-id)
(list derivation-id
output-name
derivation-output-details-id))
vec
derivation-output-details-ids)
vec))
(insert-into-derivations-by-output-details-set
(derivation-output-details-ids->derivation-output-details-set-id
conn
derivation-output-details-ids))
derivation-output-details-ids))
(define (select-derivation-by-file-name-hash conn file-name-hash)
(define query
(string-append