mirror of
https://github.com/logseq/logseq.git
synced 2026-04-24 22:25:01 +00:00
fix: don't cache entity which refer the db
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
[frontend.state :as state]
|
||||
[frontend.util :as util]
|
||||
[logseq.common.util :as common-util]
|
||||
[logseq.db :as ldb]
|
||||
[promesa.core :as p]))
|
||||
|
||||
(def ^:private yyyyMMdd-formatter (tf/formatter "yyyyMMdd"))
|
||||
@@ -110,8 +111,9 @@
|
||||
|
||||
:else
|
||||
(->
|
||||
(p/let [result (state/<invoke-db-worker :thread-api/get-blocks graph
|
||||
[{:id id :opts opts}])
|
||||
(p/let [result-transit-str (state/<invoke-db-worker-direct-pass :thread-api/get-blocks graph
|
||||
(ldb/write-transit-str [{:id id :opts opts}]))
|
||||
result (ldb/read-transit-str result-transit-str)
|
||||
{:keys [block children]} (first result)]
|
||||
(when-not skip-transact?
|
||||
(let [conn (db/get-db graph false)
|
||||
@@ -139,10 +141,14 @@
|
||||
[graph ids* & {:as opts}]
|
||||
(let [ids (remove (fn [id] (:block.temp/load-status (db/entity id))) ids*)]
|
||||
(when (seq ids)
|
||||
(p/let [result (state/<invoke-db-worker :thread-api/get-blocks graph
|
||||
(map (fn [id]
|
||||
{:id id :opts (assoc opts :children? false)})
|
||||
ids))]
|
||||
(p/let [result-transit-str
|
||||
(state/<invoke-db-worker-direct-pass :thread-api/get-blocks graph
|
||||
(ldb/write-transit-str
|
||||
(map
|
||||
(fn [id]
|
||||
{:id id :opts (assoc opts :children? false)})
|
||||
ids)))
|
||||
result (ldb/read-transit-str result-transit-str)]
|
||||
(let [conn (db/get-db graph false)
|
||||
result' (map :block result)]
|
||||
(when (seq result')
|
||||
|
||||
@@ -436,14 +436,17 @@
|
||||
[db requests]]))
|
||||
(fn [db requests]
|
||||
(when db
|
||||
(mapv (fn [{:keys [id opts]}]
|
||||
(let [id' (if (and (string? id) (common-util/uuid-string? id)) (uuid id) id)]
|
||||
(-> (common-initial-data/get-block-and-children db id' opts)
|
||||
(assoc :id id)))) requests)))))
|
||||
(->> requests
|
||||
(mapv (fn [{:keys [id opts]}]
|
||||
(let [id' (if (and (string? id) (common-util/uuid-string? id)) (uuid id) id)]
|
||||
(-> (common-initial-data/get-block-and-children db id' opts)
|
||||
(assoc :id id)))))
|
||||
ldb/write-transit-str)))))
|
||||
|
||||
(def-thread-api :thread-api/get-blocks
|
||||
[repo requests]
|
||||
(get-blocks-with-cache repo requests))
|
||||
(let [requests (ldb/read-transit-str requests)]
|
||||
(get-blocks-with-cache repo requests)))
|
||||
|
||||
(def-thread-api :thread-api/get-block-refs
|
||||
[repo id]
|
||||
|
||||
Reference in New Issue
Block a user