Function Input not Evaluated in Query Rules
Open
Nobody has claimed this yet.
- Dominant language
- Clojure
- Stars
- 5.8k
- Forks
- 318
- PR merge metrics
- No merged PRs in 30d
Description
I could easily be missing something, but to my current understanding, the intended behavior between the two code snippets below should be identical.
(d/q '[:find ?int
:in ?intersection
:where [(?intersection #{:a :b :c} #{:c :d :e}) ?int]]
clojure.set/intersection))
;; => #{[#{:c}]}
(d/q '[:find ?int
:in % ?intersection
:where (intersection-rule #{:a :b :c} #{:c :d :e} ?int)]
'[[(intersection-rule ?s ?t ?int)
[(?intersection ?s ?t) ?int]]]
clojure.set/intersection))
;; => Execution error (ExceptionInfo) at datascript.query/bind-by-fn (query.cljc:546).
;; Unknown function '?intersection__auto__1 in [(?intersection__auto__1 #{:c :b :a} #{:e :c :d})
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at query.cljc:546 in bind-by-fn and reproduce the two query snippets from the issue. Trace why the rule form reports an unknown function while the direct form succeeds; done means function input in query rules behaves consistently with the direct query without that error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- clojure
- Domain
- databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 35/100