Fork me on GitHub

i’m seeing this error for a largish (~500 datoms) transaction

"java.lang.IllegalArgumentException: No implementation of method: :value-size of protocol: #' found for class: java.lang.Integer\n\t
Any ideas what this might be?


@U380J7PAQ somehow a wrapped Integer showed up where it should not, probably should be a primitive long. Let me know if you can make a small repro. I doubt this has to do with tx size.


hmm, will do some digging. I’m using transit to sneak edn in and out of my ions. ran into the customary issues/surprises on my cljs client, might be something similar on the server


Ok so.. um.. that was in fact the problem… but it was weirdly intermittent lol. I’m uploading some info off of a gene sequencer. I’d totally forgotten that my parser on the server was in fact calling Integer/parseInt to set the value of the associated datoms But, it frequently worked just fine. Changing to Long/parseLong did fix it. Gonna finish this stuff up. Then try to go back and see if i can get a consistent test case


Hello I'm on "classic peer" I have a datomic function :empty-query? that is pretty simple

(def empty-query?
  (d/function '{:lang     :clojure
                :requires [[datomic.api :as d]]
                :params   [db query & args]
                :code     (when-not (->> (into [db] args)
                                         (hash-map :query query :args)
                            (throw (ex-info "FAIL" {})))}))
But some queries produce different result's on peer and on transactor For example
'[:find ?e
  :in $ ?ignore-set
  [?e :app/foo]
  (not [(contains? ?ignore-set ?e)])]
on peer(d/with and d/transact on "mem") works "as expected" on transact(d/transact on "dev") always return "empty?" Then I changed to
'[:find ?e
  :in $ ?ignore-set
  [?e :app/foo]
  [(contains? ?ignore-set ?e) ?q]
  [(ground false) ?q]]
That second one always returns the same results ("as expected") on transactor and on peer. Is it a bug?


BUMP. It's causing me concurrence problems and there is no simple way to test if the query will work on transactor or not


@U2J4FRT2T I have reproduced this but have not fully isolated it yet. The workaround with ground seems sound.


The worse part is that I can't test if my query will work or not. The unique way to test it is testing against dev/free transactor, and it's way slower.


Will be a issue to fix that? @stuarthalloway


@stuarthalloway news about that? it's a but and will be fixed? I will need to always run all my tests in datomic:free? I need to make a repo to reproduce?