diff --git a/deps/db/src/logseq/db/file_based/rules.cljc b/deps/db/src/logseq/db/file_based/rules.cljc index afc70dfb71..bc0aa6079d 100644 --- a/deps/db/src/logseq/db/file_based/rules.cljc +++ b/deps/db/src/logseq/db/file_based/rules.cljc @@ -88,6 +88,5 @@ [(contains? ?v ?str-val)])] :page-ref - '[(page-ref ?b ?page-name) - [?br :block/name ?page-name] - (has-ref ?b ?br)]}) + '[(page-ref ?b ?ref) + (has-ref ?b ?ref)]}) diff --git a/deps/db/src/logseq/db/frontend/rules.cljc b/deps/db/src/logseq/db/frontend/rules.cljc index ac61faedb7..60df8e372e 100644 --- a/deps/db/src/logseq/db/frontend/rules.cljc +++ b/deps/db/src/logseq/db/frontend/rules.cljc @@ -33,9 +33,8 @@ [?e2 :block/alias ?e3]]] :self-ref - '[(self-ref ?b ?page-name) - [?br :block/name ?page-name] - [?b :block/refs ?br]] + '[(self-ref ?b ?ref) + [?b :block/refs ?ref]] :has-ref '[[(has-ref ?b ?r) diff --git a/src/main/frontend/db/query_dsl.cljs b/src/main/frontend/db/query_dsl.cljs index 18c10c0e59..bf0b2fc665 100644 --- a/src/main/frontend/db/query_dsl.cljs +++ b/src/main/frontend/db/query_dsl.cljs @@ -499,16 +499,20 @@ (defn- build-page-ref [e] (let [page-name (-> (page-ref/get-page-name! e) - (util/page-name-sanity-lc))] - {:query (list 'page-ref '?b page-name) - :rules [:page-ref]})) + (util/page-name-sanity-lc)) + page (ldb/get-page (db-conn/get-db) page-name)] + (when page + {:query (list 'page-ref '?b (:db/id page)) + :rules [:page-ref]}))) (defn- build-self-ref [e] (let [page-name (-> (page-ref/get-page-name! e) - (util/page-name-sanity-lc))] - {:query (list 'self-ref '?b page-name) - :rules [:self-ref]})) + (util/page-name-sanity-lc)) + page (ldb/get-page (db-conn/get-db) page-name)] + (when page + {:query (list 'self-ref '?b (:db/id page)) + :rules [:self-ref]}))) (defn- build-block-content [e] {:query (list 'block-content '?b e) diff --git a/src/test/frontend/db/query_dsl_test.cljs b/src/test/frontend/db/query_dsl_test.cljs index 2bca533917..79467e7d74 100644 --- a/src/test/frontend/db/query_dsl_test.cljs +++ b/src/test/frontend/db/query_dsl_test.cljs @@ -611,8 +611,7 @@ prop-d:: [[nada]]"}]) (map testable-content (dsl-query "#tag1"))) "Tag arg") - (is (= [] - (dsl-query "[[blarg]]")) + (is (empty? (dsl-query "[[blarg]]")) "Nonexistent page returns no results")) (testing "basic boolean queries"