@iagwanderson I'm not sure it's a bug or not
but I think what's happening is that conn-from-datoms
is not the same as conn + transact!
rather, it's the same as getting all the datoms from an existing conn and giving them to another
and since an existing conn has no retractions expressed in its datom set, conn-from-datoms doesn't account for it
so maybe it's a bug, maybe not, depends on the intended semantics
I'd open an issue for it in your case and let the author chime in
if I had to bet, there isn't much of a reason to make conn-from-datoms
behave as transactions though
that would slow it down
and you can already just do transactions anyway
I'm using Roam Research, a web app for note taking with built in Datascript queries of your notes. It supports the where
clause, but not in
. I tried this:
[:find ?content
:where
[?e :node/title ?title]
[(re-find #"February 21st" ?title)]
[(parent ?a ?b)
[?a :block/children ?b]]
(parent ?e ?x)
[?x :block/string ?content]
]
The idea is to make a rule called parent
that I can use in another rule called ancestor
, allowing me to do recursive queries. But I get the following error:
Cannot parse binding, expected (bind-scalar | bind-tuple | bind-coll | bind-rel)
@filipematossilva thanks for the explanation, I will make a small reproducible case for this scenario and open an issue to debate with more concrete information