Fork me on GitHub

so this can be true: (and (= x x2) (not= (crux/entity node x) (crux/entity node x2)) thanks to metadata.. bug?


in particular this really caught me off guard:

(crux/submit-tx node [[:crux.tx/put {:crux.db/id (with-meta {:a 1} {:meta 1})}]])   (crux/entity (crux/db node) {:a 1}) ; => nil


particularly because their (hash ...) are the same, so crux's own hashing is breaking clojure semantics (and fixing it at this point would mean a breaking change)


Hey @U797MAJ8M - thanks for raising this - it would indeed be a breaking change. I've got some notes on this, will clean them up and publish them into an issue


We'll obviously want to put a lot of consideration into whatever solution we end up going with - one thing we have learned from this is that this area is particularly susceptible to subtle but far-reaching effects...