diff --git a/src/datomish/query/cc.cljc b/src/datomish/query/cc.cljc index 38f8abcc..3a827e0e 100644 --- a/src/datomish/query/cc.cljc +++ b/src/datomish/query/cc.cljc @@ -65,6 +65,7 @@ known-types ; {?var1 :db.type/integer} extracted-types ; {?var2 :datoms123.value_type_tag} wheres ; [[:= :datoms123.v 15]] + ctes ; {:name {:select …}} ]) (defn bind-column-to-var [cc variable table position] diff --git a/src/datomish/query/clauses.cljc b/src/datomish/query/clauses.cljc index 001cd2a5..5052b3d0 100644 --- a/src/datomish/query/clauses.cljc +++ b/src/datomish/query/clauses.cljc @@ -255,6 +255,7 @@ :extracted-types {} :external-bindings (or external-bindings {}) :bindings {} + :ctes {} :wheres []}) patterns))) @@ -265,6 +266,8 @@ [cc] (merge {:from (:from cc)} + (when-not (empty? (:ctes cc)) + {:with (:ctes cc)}) (when-not (empty? (:wheres cc)) {:where (cons :and (:wheres cc))})))