diff options
author | Christopher Baines <mail@cbaines.net> | 2020-09-30 20:07:41 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2020-09-30 20:07:41 +0100 |
commit | d844b325e213c21059452be672ba13c729dd7a4b (patch) | |
tree | 5608e2d21af492d3cc4576e792812d0732fe265c | |
parent | 47af6c9661d6023eb621d23f15f57be81afd7631 (diff) | |
download | data-service-d844b325e213c21059452be672ba13c729dd7a4b.tar data-service-d844b325e213c21059452be672ba13c729dd7a4b.tar.gz |
Stop recursing now that derivation deletion selection is smarter
As this probably won't help with performance.
-rw-r--r-- | guix-data-service/data-deletion.scm | 43 |
1 files changed, 10 insertions, 33 deletions
diff --git a/guix-data-service/data-deletion.scm b/guix-data-service/data-deletion.scm index 639d2b1..40a5bab 100644 --- a/guix-data-service/data-deletion.scm +++ b/guix-data-service/data-deletion.scm @@ -389,42 +389,19 @@ DELETE FROM derivation_output_details_sets WHERE id = $1" (list derivation-output-details-set-id))))))) - (let ((input-derivations - (map car - (exec-query - conn - " -SELECT DISTINCT derivations.id -FROM derivations -WHERE derivations.id IN ( - SELECT derivation_outputs.derivation_id - FROM derivation_outputs - INNER JOIN derivation_inputs - ON derivation_outputs.id = derivation_inputs.derivation_output_id - WHERE derivation_inputs.derivation_id = $1 -)" - (list id))))) - - (exec-query - conn - " + (exec-query + conn + " DELETE FROM derivation_inputs WHERE derivation_id = $1" - (list id)) + (list id)) - (exec-query - conn - " + (exec-query + conn + " DELETE FROM derivations WHERE id = $1" - (list id)) - - ;; Look at the inputs to see if they can be deleted too, as one of - ;; the derivations that was using them has now been deleted. - (fold - (lambda (id result) - (+ result - (maybe-delete-derivation conn id))) - 1 - input-derivations))))) + (list id)) + + 1))) (with-postgresql-connection "data-deletion" |