This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-12-27
Channels
- # adventofcode (1)
- # announcements (5)
- # babashka (11)
- # beginners (41)
- # biff (16)
- # calva (2)
- # clj-together (1)
- # clojure (9)
- # clojure-austin (8)
- # clojure-doc (1)
- # clojure-europe (45)
- # clojurescript (4)
- # clr (14)
- # datomic (13)
- # figwheel (1)
- # fulcro (11)
- # introduce-yourself (2)
- # lsp (31)
- # malli (6)
- # off-topic (3)
- # releases (2)
- # reveal (8)
- # schema (1)
- # shadow-cljs (13)
- # spacemacs (10)
- # timbre (8)
- # transit (3)
- # xtdb (5)
I was messing around with the datalog and Pull queries to retrieve facts about linked objects and was surprised that a pure datalog-triples query, with a particulate "find" part and a "where" part that implied the joins and filtered the results, took 10 times as long to run as an equivalent query with a smaller "where" part, merely to identify some documents, and a "pull" part that traversed all the joins, followed by my own "filter" call to weed out some undesirable results. Can I influence efficiency by ordering or hinting the datalog clauses?
This is currently not supported but it was discussed before that adding the option of the user specifying the variable ordering might be a good addition.
You are probably currently running into a case where the engine makes a bad choice when deciding on a variable ordering. Deciding on join order is a difficult topic.