rcmerci 2 лет назад
Родитель
Сommit
f6080b3657
1 измененных файлов с 19 добавлено и 2 удалено
  1. 19 2
      deps/db/src/logseq/db/rules.cljc

+ 19 - 2
deps/db/src/logseq/db/rules.cljc

@@ -109,7 +109,16 @@
    '[(has-property ?b ?prop)
      [?b :block/properties ?bp]
      [(missing? $ ?b :block/name)]
-     [(get ?bp ?prop)]]
+     (or-join [?bp]
+              [(get ?bp ?prop)]
+              ;; for db version, :block/properties looks like: {<uuid> <vals>, ...}
+              ;; keys are uuid-string instead of property name
+              (and [(name ?prop) ?prop-name-str]
+                   [?prop-b :block/name ?prop-name-str]
+                   [?prop-b :block/type "property"]
+                   [?prop-b :block/uuid ?prop-uuid]
+                   [(str ?prop-uuid) ?prop-uuid-str]
+                   [(get ?bp ?prop-uuid-str)]))]
 
    :block-content
    '[(block-content ?b ?query)
@@ -130,7 +139,15 @@
    '[(property ?b ?key ?val)
      [?b :block/properties ?prop]
      [(missing? $ ?b :block/name)]
-     [(get ?prop ?key) ?v]
+     (or-join [?v ?prop]
+              [(get ?prop ?key) ?v]
+              ;; for db version
+              (and [(name ?key) ?key-str]
+                   [?prop-b :block/name ?key-str]
+                   [?prop-b :block/type "property"]
+                   [?prop-b :block/uuid ?prop-uuid]
+                   [(str ?prop-uuid) ?prop-uuid-str]
+                   [(get ?prop ?prop-uuid-str) ?v]))
      [(str ?val) ?str-val]
      (or [(= ?v ?val)]
          [(contains? ?v ?val)]