Fork me on GitHub
#xtdb
<
2021-05-13
>
nivekuil23:05:54

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

nivekuil23:05:46

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

nivekuil23:05:36

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)

jarohen08:05:48

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

jarohen09:05:37

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...