SQL → Datahike Datalog translator.
Parses SQL strings using JSqlParser and translates the AST into Datahike
Datalog queries that can be executed by datahike.api/q.
The core mapping: attribute namespace prefixes become virtual table names. :person/name → table 'person', column 'name' :person/age → table 'person', column 'age'
Main entry points: (parse-sql sql schema) → {:type :select :query {...} :args [...]} | {:type :insert :tx-data [...]} | {:type :system :result QueryResult} | {:type :error :message str}
SQL → Datahike Datalog translator.
Parses SQL strings using JSqlParser and translates the AST into Datahike
Datalog queries that can be executed by `datahike.api/q`.
The core mapping: attribute namespace prefixes become virtual table names.
:person/name → table 'person', column 'name'
:person/age → table 'person', column 'age'
Main entry points:
(parse-sql sql schema) → {:type :select :query {...} :args [...]}
| {:type :insert :tx-data [...]}
| {:type :system :result QueryResult}
| {:type :error :message str}Tests can rebind this to an isolated java.util.Map to keep their
data from polluting the global cache (or vice versa). Nil disables
caching entirely. Defaults to the server-wide cache.
Tests can rebind this to an isolated `java.util.Map` to keep their data from polluting the global cache (or vice versa). Nil disables caching entirely. Defaults to the server-wide cache.
(parse-sql sql schema)(parse-sql sql schema db)Parse a SQL statement and return a translation result.
Returns one of: {:type :select :query <datalog-map> :find-aliases [...] ...} {:type :insert :tx-data [...] :count N} {:type :update :table str :ns str :assignments [...] :where-expr expr} {:type :delete :table str :ns str :where-expr expr} {:type :ddl-create :tx-data [...]} {:type :system :system-type keyword} {:type :error :message str}
Optional db parameter enables subquery execution during translation.
Parse a SQL statement and return a translation result.
Returns one of:
{:type :select :query <datalog-map> :find-aliases [...] ...}
{:type :insert :tx-data [...] :count N}
{:type :update :table str :ns str :assignments [...] :where-expr expr}
{:type :delete :table str :ns str :where-expr expr}
{:type :ddl-create :tx-data [...]}
{:type :system :system-type keyword}
{:type :error :message str}
Optional db parameter enables subquery execution during translation.cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |