From ece217ad781a431b8e408151cb597dcdd8d2493e Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Fri, 10 Mar 2023 16:59:42 -0800 Subject: [PATCH] Likely improves performance of import ledger --- src/clj/auto_ap/graphql/ledger.clj | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/clj/auto_ap/graphql/ledger.clj b/src/clj/auto_ap/graphql/ledger.clj index 3b7e5ea1..11e6dcc1 100644 --- a/src/clj/auto_ap/graphql/ledger.clj +++ b/src/clj/auto_ap/graphql/ledger.clj @@ -292,12 +292,14 @@ (defn import-ledger [context args _] (assert-admin (:id context)) - (let [all-vendors (mu/trace ::get-all-vendors + (let [used-vendor-names (set (map :vendor_name (:entries args))) + all-vendors (mu/trace ::get-all-vendors [] (->> (d/q '[:find [?e ...] - :in $ - :where [?e :vendor/name]] - (d/db conn)) + :in $ [?name ...] + :where [?e :vendor/name ?name]] + (d/db conn) + used-vendor-names) (d/pull-many (d/db conn) d-vendors/default-read) (by :vendor/name))) all-clients (by :client/code (d-clients/get-all )) @@ -331,10 +333,13 @@ _ (mu/trace ::upsert-new-vendors [] (audit-transact-batch (vec (vals new-hidden-vendors)) (:id context))) - all-vendors (->> (d/q '[:find [?e ...] - :in $ - :where [?e :vendor/name]] - (d/db conn)) + all-vendors (->> (->> (d/q '[:find [?e ...] + :in $ [?name ...] + :where [?e :vendor/name ?name]] + (d/db conn) + used-vendor-names) + (d/pull-many (d/db conn) d-vendors/default-read) + (by :vendor/name)) (d/pull-many (d/db conn) d-vendors/default-read) (by :vendor/name)) all-accounts (transduce (map (comp str :account/numeric-code)) conj #{} (a/get-accounts))