瀏覽代碼

fix: large graph generation for some cases

Fixes some generation cases like 1 or 2 pages with 1000 blocks.
Larger generation with 10k+ blocks still fail b/c of block/order
generation. Also remove deleted :block-id-fn
Gabriel Horner 1 年之前
父節點
當前提交
d4bc5f22ff

+ 6 - 5
scripts/src/logseq/tasks/db_graph/create_graph.cljs

@@ -224,16 +224,17 @@
         (vec
          (mapcat
           (fn [{:keys [page blocks]}]
-            (let [new-page {:db/id (or (:db/id page) (new-db-id))
-                            :block/original-name (or (:block/original-name page) (string/capitalize (:block/name page)))
-                            :block/name (or (:block/name page) (common-util/page-name-sanity-lc (:block/original-name page)))
-                            :block/format :markdown}]
+            (let [new-page (merge
+                            {:db/id (or (:db/id page) (new-db-id))
+                             :block/original-name (or (:block/original-name page) (string/capitalize (:block/name page)))
+                             :block/name (or (:block/name page) (common-util/page-name-sanity-lc (:block/original-name page)))
+                             :block/format :markdown}
+                            (dissoc page :properties :db/id :block/name :block/original-name))]
               (into
                ;; page tx
                [(sqlite-util/block-with-timestamps
                  (merge
                   new-page
-                  (dissoc page :properties)
                   (when (seq (:properties page))
                     (->block-properties (:properties page) uuid-maps all-idents))
                   (when (seq (:properties page))

+ 2 - 3
scripts/src/logseq/tasks/db_graph/create_graph_with_large_sizes.cljs

@@ -41,9 +41,8 @@
     {:pages-and-blocks
      (mapv #(hash-map :page % :blocks (build-blocks (:blocks options)))
            pages)
-     ;; Custom id fns because transaction chunks may separate blocks and pages from each other
-     :page-id-fn (fn [b] [:block/uuid (:block/uuid b)])
-     :block-id-fn (fn [b] [:block/uuid (:block/uuid b)])}))
+     ;; Custom id fn because transaction chunks may separate blocks and pages from each other
+     :page-id-fn (fn [b] [:block/uuid (:block/uuid b)])}))
 
 (def spec
   "Options spec"