This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-06-15
Channels
- # beginners (56)
- # boot (4)
- # cider (22)
- # clara (10)
- # cljs-dev (50)
- # cljsrn (27)
- # clojure (27)
- # clojure-conj (4)
- # clojure-dev (3)
- # clojure-italy (17)
- # clojure-nl (12)
- # clojure-norway (3)
- # clojure-spec (10)
- # clojure-uk (137)
- # clojurescript (132)
- # cursive (4)
- # datascript (2)
- # datomic (109)
- # devcards (2)
- # editors (1)
- # emacs (4)
- # euroclojure (2)
- # events (4)
- # figwheel (1)
- # fulcro (15)
- # jobs (1)
- # jobs-discuss (4)
- # juxt (3)
- # leiningen (2)
- # off-topic (21)
- # onyx (13)
- # other-languages (8)
- # pedestal (6)
- # re-frame (22)
- # reagent (5)
- # reitit (1)
- # ring-swagger (3)
- # shadow-cljs (75)
- # sql (6)
- # tools-deps (2)
- # vim (1)
- # yada (8)
Is there some write-up somewhere, preferably with examples, giving a good idea of the kinds of queries expressible in datalog that cannot be expressed in SQL/relational algebra? I believe that the canonical example is queries involving 'paths', e.g. ancestor/descendant queries from parent/child relationships in the data.
Datalog is computationally equivalent in power to sql + recursion. Any datalog query that doesn't involve a recursive rule is more or less equivalent to some SQL query. So yes, path related queries, like ancestor descendant relationships, are a prime example of something Datalog can do that SQL cannot (without external iteration/recursion).