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]
|
||||
(or [(= ?v ?val)]
|
||||
[(contains? ?v ?val)]
|
||||
;; For integer pages that aren't strings
|
||||
[(contains? ?v ?str-val)])]
|
||||
|
||||
:page-ref
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
(ns frontend.db.query-dsl-test
|
||||
(:require [cljs.test :refer [are deftest testing use-fixtures is]]
|
||||
[clojure.string :as str]
|
||||
[logseq.graph-parser.util.page-ref :as page-ref]
|
||||
[frontend.db :as db]
|
||||
[frontend.util :as util]
|
||||
[frontend.db.query-dsl :as query-dsl]
|
||||
[frontend.test.helper :as test-helper :include-macros true :refer [load-test-files]]))
|
||||
|
||||
|
@ -142,6 +144,21 @@ prop-d:: nada"}])
|
|||
(test-helper/with-config {}
|
||||
(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
|
||||
[]
|
||||
(load-test-files [{:file/path "pages/page1.md"
|
||||
|
|
Loading…
Reference in New Issue