mirror of https://github.com/logseq/logseq
Add test to prevent regression on #9119
parent
a03bd6002c
commit
8697d59b72
|
@ -134,6 +134,7 @@
|
||||||
[(str ?val) ?str-val]
|
[(str ?val) ?str-val]
|
||||||
(or [(= ?v ?val)]
|
(or [(= ?v ?val)]
|
||||||
[(contains? ?v ?val)]
|
[(contains? ?v ?val)]
|
||||||
|
;; For integer pages that aren't strings
|
||||||
[(contains? ?v ?str-val)])]
|
[(contains? ?v ?str-val)])]
|
||||||
|
|
||||||
:page-ref
|
:page-ref
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
(ns frontend.db.query-dsl-test
|
(ns frontend.db.query-dsl-test
|
||||||
(:require [cljs.test :refer [are deftest testing use-fixtures is]]
|
(:require [cljs.test :refer [are deftest testing use-fixtures is]]
|
||||||
[clojure.string :as str]
|
[clojure.string :as str]
|
||||||
|
[logseq.graph-parser.util.page-ref :as page-ref]
|
||||||
[frontend.db :as db]
|
[frontend.db :as db]
|
||||||
|
[frontend.util :as util]
|
||||||
[frontend.db.query-dsl :as query-dsl]
|
[frontend.db.query-dsl :as query-dsl]
|
||||||
[frontend.test.helper :as test-helper :include-macros true :refer [load-test-files]]))
|
[frontend.test.helper :as test-helper :include-macros true :refer [load-test-files]]))
|
||||||
|
|
||||||
|
@ -142,6 +144,21 @@ prop-d:: nada"}])
|
||||||
(test-helper/with-config {}
|
(test-helper/with-config {}
|
||||||
(block-property-queries-test))))
|
(block-property-queries-test))))
|
||||||
|
|
||||||
|
(deftest block-property-query-performance
|
||||||
|
(let [pages (->> (repeat 10 {:tags ["tag1" "tag2"]})
|
||||||
|
(map-indexed (fn [idx {:keys [tags]}]
|
||||||
|
{:file/path (str "pages/page" idx ".md")
|
||||||
|
:file/content (if (seq tags)
|
||||||
|
(str "tags:: " (str/join ", " (map page-ref/->page-ref tags)))
|
||||||
|
"")})))
|
||||||
|
_ (load-test-files pages)
|
||||||
|
{:keys [result time]}
|
||||||
|
(util/with-time (dsl-query "(and (property tags tag1) (property tags tag2))"))]
|
||||||
|
;; Specific number isn't as important as ensuring query doesn't take orders
|
||||||
|
;; of magnitude longer
|
||||||
|
(is (> 25.0 time) "multi property query perf is reasonable")
|
||||||
|
(is (= 10 (count result)))))
|
||||||
|
|
||||||
(defn- page-property-queries-test
|
(defn- page-property-queries-test
|
||||||
[]
|
[]
|
||||||
(load-test-files [{:file/path "pages/page1.md"
|
(load-test-files [{:file/path "pages/page1.md"
|
||||||
|
|
Loading…
Reference in New Issue