noprompt / meander

Tools for transparent data transformation
MIT License
922 stars 55 forks source link

With consolidation breaks code generation #176

Closed noprompt closed 3 years ago

noprompt commented 3 years ago

This example from Slack

(let [db {:db/id {:ivan  {:name   "Ivan"
                          :friend [:db/id :petr]}
                  :petr  {:name   "Petr"
                          :friend [[:db/id :smith] [:db/id :ivan]]}
                  :smith {:name   "Smith"
                          :friend [:db/id :petr]}}}]
  (m/search db
    {_ {?e {:name "Ivan"
            :friend (m/or (m/scan [?t ?f]) [?t ?f])}
        ?f {:name ?name}}}
    [?t ?f ?name]))
;; => ([:db/id :petr "Petr"] [:db/id :smith "Smith"])

is resolved when with consolidation has been disabled.