From 9f05f5f4f944c75caf017f3464cef454539ab6b9 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Tue, 29 Nov 2022 10:36:46 +0000 Subject: [PATCH] Only sometimes attempt manually computing n_distinct values For derivation_inputs. --- guix-data-service/jobs/load-new-guix-revision.scm | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/guix-data-service/jobs/load-new-guix-revision.scm b/guix-data-service/jobs/load-new-guix-revision.scm index c1c27af..57d6e77 100644 --- a/guix-data-service/jobs/load-new-guix-revision.scm +++ b/guix-data-service/jobs/load-new-guix-revision.scm @@ -2142,9 +2142,18 @@ SKIP LOCKED") "vacuuming package derivations by guix revision range table" (vacuum-package-derivations-table conn)) - (with-time-logging - "update-derivation-inputs-statistics" - (update-derivation-inputs-statistics conn)) + (match (exec-query + conn + "SELECT reltuples::integer FROM pg_class WHERE relname = 'derivation_inputs'") + (((rows)) + ;; Don't attempt counting distinct values if there are too + ;; many rows, as that is far to slow and could use up all the + ;; disk space. + (when (< (string->number rows) + 1000000000) + (with-time-logging + "update-derivation-inputs-statistics" + (update-derivation-inputs-statistics conn))))) (with-time-logging "vacuum-derivation-inputs-table"