浏览代码

fix: block attrs for db advanced queries

db graph advanced queries were fetching file graph attributes
Gabriel Horner 1 年之前
父节点
当前提交
15fa327aec

+ 0 - 32
deps/db/src/logseq/db.cljs

@@ -21,38 +21,6 @@
             [logseq.common.util.namespace :as ns-util])
   (:refer-clojure :exclude [object?]))
 
-;; Use it as an input argument for datalog queries
-(def block-attrs
-  '[:db/id
-    :block/uuid
-    :block/parent
-    :block/order
-    :block/collapsed?
-    :block/format
-    :block/refs
-    :block/_refs
-    :block/path-refs
-    :block/tags
-    :block/link
-    :block/title
-    :block/marker
-    :block/priority
-    :block/properties
-    :block/properties-order
-    :block/properties-text-values
-    :block/pre-block?
-    :block/scheduled
-    :block/deadline
-    :block/repeated?
-    :block/created-at
-    :block/updated-at
-    ;; TODO: remove this in later releases
-    :block/heading-level
-    :block/file
-    :logseq.property/parent
-    {:block/page [:db/id :block/name :block/title :block/journal-day]}
-    {:block/_parent ...}])
-
 (defonce *transact-fn (atom nil))
 (defn register-transact-fn!
   [f]

+ 1 - 1
src/main/frontend/db/async.cljs

@@ -239,7 +239,7 @@
                                         [(>= ?d ?day)])]
                              date
                              future-day
-                             db-model/block-attrs)]
+                             db-model/file-graph-block-attrs)]
             (->> result
                  db-model/sort-by-order-recursive
                  db-utils/group-by-page)))))))

+ 32 - 2
src/main/frontend/db/model.cljs

@@ -23,7 +23,37 @@
 ;; TODO: extract to specific models and move data transform logic to the
 ;; corresponding handlers.
 
-(def block-attrs ldb/block-attrs)
+(def file-graph-block-attrs
+  "In file graphs, use it to replace '*' for datalog queries"
+  '[:db/id
+    :block/uuid
+    :block/parent
+    :block/order
+    :block/collapsed?
+    :block/format
+    :block/refs
+    :block/_refs
+    :block/path-refs
+    :block/tags
+    :block/link
+    :block/title
+    :block/marker
+    :block/priority
+    :block/properties
+    :block/properties-order
+    :block/properties-text-values
+    :block/pre-block?
+    :block/scheduled
+    :block/deadline
+    :block/repeated?
+    :block/created-at
+    :block/updated-at
+    ;; TODO: remove this in later releases
+    :block/heading-level
+    :block/file
+    :logseq.property/parent
+    {:block/page [:db/id :block/name :block/title :block/journal-day]}
+    {:block/_parent ...}])
 
 (def hidden-page? ldb/hidden?)
 
@@ -587,7 +617,7 @@ independent of format as format specific heading characters are stripped"
              [?block :block/path-refs ?ref-page]]
            db
            pages
-           (butlast block-attrs))
+           (butlast file-graph-block-attrs))
           (remove (fn [block] (= page-id (:db/id (:block/page block)))))
           db-utils/group-by-page
           (map (fn [[k blocks]]

+ 4 - 3
src/main/frontend/db/query_custom.cljs

@@ -12,7 +12,7 @@
 ;; FIXME: what if users want to query other attributes than block-attrs?
 (defn- replace-star-with-block-attrs!
   [l]
-  (let [block-attrs (butlast model/block-attrs)]
+  (let [block-attrs (butlast model/file-graph-block-attrs)]
     (walk/postwalk
     (fn [f]
       (if (and (list? f)
@@ -73,12 +73,13 @@
   ([query query-opts]
    (custom-query (state/get-current-repo) query query-opts))
   ([repo query query-opts]
-   (let [query' (replace-star-with-block-attrs! query)
+   (let [db-graph? (config/db-based-graph? repo)
+         query' (if db-graph? query (replace-star-with-block-attrs! query))
          query-opts (if (:query-string query-opts) query-opts
                         (assoc query-opts :query-string (str query)))]
      (if (or (list? (:query query'))
              (not= :find (first (:query query')))) ; dsl query
        (query-dsl/custom-query repo query' query-opts)
        (query-react/react-query repo
-                                (add-rules-to-query query' {:db-graph? (config/db-based-graph? repo)})
+                                (add-rules-to-query query' {:db-graph? db-graph?})
                                 query-opts)))))

+ 1 - 1
src/main/frontend/db/query_dsl.cljs

@@ -606,7 +606,7 @@ Some bindings in this fn:
 
 (defn query-wrapper
   [where {:keys [blocks? block-attrs]}]
-  (let [block-attrs (or block-attrs (butlast model/block-attrs))
+  (let [block-attrs (or block-attrs (butlast model/file-graph-block-attrs))
         q (if blocks?                   ; FIXME: it doesn't need to be either blocks or pages
             `[:find (~'pull ~'?b ~block-attrs)
               :in ~'$ ~'%