Multiple occurances of variable in one clause
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 38/100
Hướng nghiên cứu
Bắt đầu với bản tái hiện strange-test được cung cấp và điểm vào datascript/q; chạy nó với hành vi được báo cáo ở 0.16.2. So sánh hai dạng truy vấn và coi issue là hoàn tất khi dạng biến lặp lại luôn trả về #{[2]} giống như dạng so sánh bằng tường minh, với hồi quy được kiểm thử.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Thanks for making this library public. I am currently experimenting with Datascript and came across some strange behaviour. Either I am doing something wrong, or maybe it is a bug in Datascript. The problem is best illustrated with unit test that I wrote:
(deftest strange-test
(let [schema {:db/id {:db/unique :db.unique/identity}
:expr/depends-on {:db/type :db.type/ref
:db/cardinality :db.cardinality/many}}
conn (datascript/create-conn schema)]
(datascript/transact!
conn
[{:db/id 1}
{:db/id 2}
{:db/id 3}
[:db/add 3 :expr/depends-on 1]
[:db/add 3 :expr/depends-on 2]
[:db/add 2 :expr/depends-on 2]])
;; Find expressions that depend on themselves.
;; This test *fails* but I would expect it to pass. Is it a bug in Datascript?
(is (= #{[2]}
(datascript/q
'[:find ?x
:where
[?x :expr/depends-on ?x]]
@conn)))
;; But this, more bulky version, works. It passes, as I expect.
(is (= #{[2]}
(datascript/q
'[:find ?x
:where
[?x :expr/depends-on ?y]
[(= ?x ?y)]]
@conn)))))
This first is form fails, but I would expect it to pass. The second is form passes, as I would expect. I would expect both to pass.
The Datascript version is 0.16.2.
The error message in the unit test is
Fail in strange-test
expected: (=
#{[2]}
(datascript/q '[:find ?x :where [?x :expr/depends-on ?x]] @conn))
actual: (not (= #{[2]} #{[2] [1]}))
Did I misunderstand something about how Datascript works, or is this a bug? Thank you.
- Ngôn ngữ chính
- Clojure
- Star
- 5.8k
- Fork
- 318
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của tonsky/datascript
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 42/100
tonsky/datascript#498 · 1 bình luận ·
-
Datascript MCP Server Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 10/100
tonsky/datascript#489 ·
-
Stack overflow when transacting :db.type/tupleAttrs with a :db.type/ref attr through :db.fn/call Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
tonsky/datascript#483 · 2 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
tonsky/datascript#470 · 1 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
tonsky/datascript#441 · 1 bình luận · 3 reaction ·
Tất cả issue của tonsky/datascript
Issue tương tự
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
-
.Team/Metabot Priority:P3
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
needs triage
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
scalar-labs/scalar-jepsen#222 · 1 bình luận ·