use ldb/transact! instead of d/transact!

pull/10839/head
Tienson Qin 2024-01-05 06:42:10 +08:00
parent 7c4baf97db
commit fa2892cef6
14 changed files with 55 additions and 49 deletions

View File

@ -47,6 +47,18 @@
{:block/_parent ...}])
(defn transact!
([conn tx-data]
(transact! conn tx-data nil))
([conn tx-data tx-meta]
(let [tx-data (common-util/fast-remove-nils tx-data)]
(when (seq tx-data)
(prn :debug :transact)
(cljs.pprint/pprint tx-data)
(d/transact! conn tx-data tx-meta)))))
(defn create-default-pages!
"Creates default pages if one of the default pages does not exist. This
fn is idempotent"
@ -61,7 +73,7 @@
db-graph?
(assoc :block/format :markdown)))
default-db/built-in-pages)]
(d/transact! db-conn built-in-pages))))
(transact! db-conn built-in-pages))))
(defn create-built-in-properties!
[conn]

View File

@ -7,6 +7,7 @@
[logseq.graph-parser.date-time-util :as date-time-util]
[logseq.common.config :as common-config]
[logseq.db.frontend.schema :as db-schema]
[logseq.db :as ldb]
[clojure.string :as string]
[clojure.set :as set]))
@ -126,7 +127,7 @@ Options available:
tx' (common-util/fast-remove-nils tx)
result (if skip-db-transact?
tx'
(d/transact! conn tx' (select-keys options [:new-graph? :from-disk?])))]
(ldb/transact! conn tx' (select-keys options [:new-graph? :from-disk?])))]
{:tx result
:ast ast})))

View File

@ -161,7 +161,7 @@
page-m (gp-block/page-name->map linked-page (or existing-ref-id true)
db true date-formatter)
_ (when-not (d/entity db [:block/uuid (:block/uuid page-m)])
(d/transact! conn [page-m]))
(ldb/transact! conn [page-m]))
merge-tx (let [children (:block/_parent block-entity)
page (d/entity db [:block/uuid (:block/uuid page-m)])
[target sibling?] (get-last-child-or-self db page)]
@ -256,8 +256,8 @@
(if uuid
uuid
(let [new-id (ldb/new-block-id)]
(d/transact! conn [{:db/id (:db/id data)
:block/uuid new-id}])
(ldb/transact! conn [{:db/id (:db/id data)
:block/uuid new-id}])
new-id))))))
(-get-parent-id [this conn]

View File

@ -4,7 +4,8 @@
[logseq.db.sqlite.util :as sqlite-util]
[logseq.graph-parser.property :as gp-property]
[datascript.core :as d]
[clojure.string :as string]))
[clojure.string :as string]
[logseq.db :as ldb]))
(defn new-outliner-txs-state [] (atom []))
@ -96,7 +97,7 @@
;; (cljs.pprint/pprint txs)
(try
(let [tx-report (d/transact! conn txs (assoc tx-meta :outliner/transact? true))]
(let [tx-report (ldb/transact! conn txs (assoc tx-meta :outliner/transact? true))]
(when (fn? after-transact-fn) (after-transact-fn tx-report opts))
tx-report)
(catch :default e

View File

@ -86,12 +86,7 @@
(transact! repo tx-data nil))
([repo tx-data tx-meta]
(when-let [conn (get-db repo false)]
;; (prn :debug "DB transact:")
;; (frontend.util/pprint {:tx-data tx-data
;; :tx-meta tx-meta})
(if tx-meta
(d/transact! conn (vec tx-data) tx-meta)
(d/transact! conn (vec tx-data))))))
(ldb/transact! conn tx-data tx-meta))))
(defn start!
([repo]

View File

@ -341,7 +341,8 @@ independent of format as format specific heading characters are stripped"
{:query-fn (fn [_]
(let [e (db-utils/entity id)
children (map :db/id (sort-by-left (:block/_parent e) e))]
[e {:original-name (:block/original-name e)
[e {:name (:block/name e)
:original-name (:block/original-name e)
:link (:block/link e)
:namespace (:block/namespace e)
:types (:block/type e)

View File

@ -19,6 +19,7 @@
[logseq.graph-parser.whiteboard :as gp-whiteboard]
[frontend.worker.handler.page :as worker-page]
[frontend.worker.state :as worker-state]
[logseq.db :as ldb]
[frontend.db.rtc.const :as rtc-const]
[frontend.db.rtc.op-mem-layer :as op-mem-layer]
@ -110,12 +111,12 @@
(apply outliner-core/save-block! args)))
(defmethod transact-db! :delete-whiteboard-blocks [_ conn block-uuids]
(d/transact! conn
(mapv (fn [block-uuid] [:db/retractEntity [:block/uuid block-uuid]]) block-uuids)
{:persist-op? false}))
(ldb/transact! conn
(mapv (fn [block-uuid] [:db/retractEntity [:block/uuid block-uuid]]) block-uuids)
{:persist-op? false}))
(defmethod transact-db! :upsert-whiteboard-block [_ conn blocks]
(d/transact! conn blocks {:persist-op? false}))
(ldb/transact! conn blocks {:persist-op? false}))
(defn- whiteboard-page-block?
[block]

View File

@ -90,19 +90,13 @@
(->> (d/pull-many db selector eids)
(map #(update-block-content % (:db/id %))))))))
(defn- actual-transact!
[repo-url tx-data tx-meta]
(let [tx-data (common-util/fast-remove-nils tx-data)]
(when (seq tx-data)
(conn/transact! repo-url tx-data tx-meta))))
(if config/publishing?
(defn- transact!*
[repo-url tx-data tx-meta]
;; :save-block is for query-table actions like sorting and choosing columns
(when (#{:collapse-expand-blocks :save-block} (:outliner-op tx-meta))
(actual-transact! repo-url tx-data tx-meta)))
(def transact!* actual-transact!))
(conn/transact! repo-url tx-data tx-meta)))
(def transact!* conn/transact!))
(defn transact!
([tx-data]

View File

@ -15,7 +15,8 @@
[logseq.db.sqlite.util :as sqlite-util]
[frontend.worker.pipeline :as pipeline]
[frontend.worker.state :as state]
[frontend.worker.file :as file]))
[frontend.worker.file :as file]
[logseq.db :as ldb]))
(defonce *sqlite state/*sqlite)
(defonce *sqlite-conns state/*sqlite-conns)
@ -258,7 +259,7 @@
tx-meta' (if (or (:from-disk? tx-meta) (:new-graph? tx-meta))
tx-meta
(assoc tx-meta :skip-store? true))
tx-report (d/transact! conn tx-data tx-meta')
tx-report (ldb/transact! conn tx-data tx-meta')
result (pipeline/invoke-hooks repo conn tx-report context)
;; TODO: delay search indice so that UI can be refreshed earlier
search-indice (search/sync-search-indice repo (:tx-report result))

View File

@ -6,7 +6,6 @@
[frontend.db.conn :as conn]
[frontend.db.utils :as db-utils]
[frontend.util :as util]
[frontend.handler.ui :as ui-handler]
[frontend.handler.notification :as notification]
[frontend.handler.route :as route-handler]
[logseq.outliner.core :as outliner-core]
@ -65,13 +64,14 @@
(when (and (db/page-exists? from-page-name)
(db/page-exists? to-page-name)
(not= from-page-name to-page-name))
(let [to-page (db/entity [:block/name to-page-name])
(let [conn (db/get-db false)
to-page (db/entity [:block/name to-page-name])
to-id (:db/id to-page)
from-page (db/entity [:block/name from-page-name])
from-id (:db/id from-page)
from-first-child (some->> (db/pull from-id)
(outliner-core/block (db/get-db))
(otree/-get-down (db/get-db false))
(outliner-core/block @conn)
(#(otree/-get-down % conn))
(outliner-core/get-data))
to-last-direct-child-id (model/get-block-last-direct-child-id (db/get-db) to-id)
repo (state/get-current-repo)
@ -148,5 +148,4 @@
:uuid (:block/uuid page-e)
:redirect? redirect?
:create-first-block? false
:persist-op? persist-op?}))
(ui-handler/re-render-root!))))))
:persist-op? persist-op?})))))))

View File

@ -145,7 +145,7 @@
(when (seq fix-conflicts-tx)
(prn :debug :conflicts-tx)
(pprint/pprint fix-conflicts-tx)
(let [tx-data (:tx-data (d/transact! conn fix-conflicts-tx transact-opts))]
(let [tx-data (:tx-data (ldb/transact! conn fix-conflicts-tx transact-opts))]
(swap! *fix-tx-data (fn [old-data] (concat old-data tx-data))))
(when (seq (get-conflicts @conn page-id))
(loop-fix-conflicts conn page-id transact-opts *fix-tx-data)))))
@ -167,6 +167,6 @@
parent-left->es' (build-parent-left->es db page-id)
fix-broken-chain-tx (fix-broken-chain db' parent-left->es')]
(when (seq fix-broken-chain-tx)
(let [tx-data (:tx-data (d/transact! conn fix-broken-chain-tx transact-opts))]
(let [tx-data (:tx-data (ldb/transact! conn fix-broken-chain-tx transact-opts))]
(swap! *fix-tx-data (fn [old-data] (concat old-data tx-data)))))))
@*fix-tx-data))

View File

@ -134,7 +134,7 @@
tx [{:file/path file-rpath}
{:block/name (:block/name page-block)
:block/file file}]]
(d/transact! conn tx)
(ldb/transact! conn tx)
(when ok-handler (ok-handler)))))
(defn- remove-transit-ids [block] (dissoc block :db/id :block/file))

View File

@ -125,7 +125,7 @@
page-txs
first-block-tx)]
(when (seq txs)
(d/transact! conn txs {:persist-op? persist-op?})
(ldb/transact! conn txs {:persist-op? persist-op?})
page-name)))))
(defn db-refs->page
@ -207,8 +207,8 @@
db-based? (sqlite-util/db-based-graph? repo)]
(if-let [msg (and db-based? (page-unable-to-delete conn page))]
(do
(d/transact! conn truncate-blocks-tx-data
{:outliner-op :truncate-page-blocks :persist-op? persist-op?})
(ldb/transact! conn truncate-blocks-tx-data
{:outliner-op :truncate-page-blocks :persist-op? persist-op?})
(error-handler msg))
(let [file (ldb/get-page-file @conn page-name)
file-path (:file/path file)
@ -230,12 +230,12 @@
nil)
tx-data (concat truncate-blocks-tx-data delete-page-tx delete-file-tx)]
(d/transact! conn tx-data
(cond-> {:outliner-op :delete-page :persist-op? persist-op?}
file-path
(assoc
:deleted-page page-name
:file-path file-path)))
(ldb/transact! conn tx-data
(cond-> {:outliner-op :delete-page :persist-op? persist-op?}
file-path
(assoc
:deleted-page page-name
:file-path file-path)))
(when (fn? ok-handler) (ok-handler))

View File

@ -7,7 +7,8 @@
[frontend.worker.file :as file]
[logseq.db.frontend.validate :as validate]
[logseq.db.sqlite.util :as sqlite-util]
[frontend.worker.db.fix :as db-fix]))
[frontend.worker.db.fix :as db-fix]
[logseq.db :as ldb]))
(defn- path-refs-need-recalculated?
[tx-meta]
@ -92,8 +93,8 @@
{:db/id db-id
:block/tx-id tx-id})) updated-blocks)
(remove nil?))))
tx-report' (d/transact! conn replace-tx {:replace? true
:pipeline-replace? true})
tx-report' (ldb/transact! conn replace-tx {:replace? true
:pipeline-replace? true})
full-tx-data (concat (:tx-data tx-report) fix-tx-data (:tx-data tx-report'))
final-tx-report (assoc tx-report' :tx-data full-tx-data)
affected-query-keys (when-not (:importing? context)