Closed stevebuik closed 3 years ago
Currently, even if this can be done, it will work very slowly. Doxa uses a meander
underneath, which builds queries during compilation. There is also meander.interpeter
which runs on runetime, but the problem is that its performance is not satisfactory.
It would be possible to drop the meander
, but that would require writing joins from scratch, the rest is up to fairly simple, but fast joins are difficult.
I thought that might be the reason. that's ok, I can work around this in my apps.
I can understand that you would rather let meander do the heavy lifting.
It might be worth mentioning this limitation in the docs.
closing for now
this works
(dx/q [:find ?e :where [?e :name ?t]] db)
=> lots of results
but this does not
(dx/q '[:find ?e :where [?e :name ?t]] db)
-> []
This means that I cannot pass a query at composed runtime to dx/q and this limits the query power a lot.
I noticed that dx/q is a macro (vs pull which is not) so maybe that's the reason why.
Can the quoted version be supported?