From aeed535f1b70506cbfed0461c0f76754c19bf4a3 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 23 Feb 2022 09:13:08 +0100 Subject: [PATCH] :sparkles: Minor improvement on reference handling on touched-gc task --- backend/src/app/storage.clj | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/backend/src/app/storage.clj b/backend/src/app/storage.clj index 4891e338d..e084c4633 100644 --- a/backend/src/app/storage.clj +++ b/backend/src/app/storage.clj @@ -350,14 +350,15 @@ (retrieve-touched-chunk [conn cursor] (let [rows (->> (db/exec! conn [sql:retrieve-touched-objects-chunk cursor]) - (mapv #(d/update-when % :metadata db/decode-transit-pgobject)))] + (mapv #(d/update-when % :metadata db/decode-transit-pgobject))) + kw (fn [o] (if (keyword? o) o (keyword o)))] (when (seq rows) [(-> rows peek :created-at) ;; NOTE: we use the :file-media-object as default value for backward compatibility because when we ;; deploy it we can have old backend instances running in the same time as the new one and we can ;; still have storage-objects created without reference value. And we know that if it does not ;; have value, it means :file-media-object. - (d/group-by' #(or (-> % :metadata :reference) :file-media-object) :id rows)]))) + (d/group-by' #(or (some-> % :metadata :reference kw) :file-media-object) :id rows)]))) (retrieve-touched [conn] (->> (d/iteration (fn [cursor] @@ -391,7 +392,9 @@ (let [[f d] (case reference :file-media-object (process-objects! conn has-file-media-object-nrefs? ids) :team-font-variant (process-objects! conn has-team-font-variant-nrefs? ids) - (ex/raise :type :internal :code :unexpected-unknown-reference))] + (ex/raise :type :internal + :code :unexpected-unknown-reference + :hint (format "unknown reference %s" (pr-str reference))))] (recur (+ to-freeze f) (+ to-delete d) (rest groups)))