Fork me on GitHub
#datomic
<
2020-02-27
>
Jon Walch01:02:49

Has anyone seen this?

clojure.lang.ExceptionInfo: entity, attribute, and new-value must be specified
	at datomic.client.api.async$ares.invokeStatic(async.clj:58)
	at datomic.client.api.async$ares.invoke(async.clj:54)
	at datomic.client.api.sync$eval2142$fn__2147.invoke(sync.clj:84)
	at datomic.client.api.protocols$fn__14323$G__14277__14330.invoke(protocols.clj:72)
	at datomic.client.api$transact.invokeStatic(api.clj:181)
	at datomic.client.api$transact.invoke(api.clj:164)

Jon Walch01:02:02

Google is turning up nothing

ghadi01:02:59

What transaction data did you send in @jonwalch ?

Jon Walch02:02:42

@ghadi

[{:db/id 1,
  :foo/apple 0N,
  :foo/processed-time #inst "2020-02-27T02:00:35.561-00:00"}
 {:db/id 2,
  :foo/apple 0N,
  :foo/processed-time #inst "2020-02-27T02:00:35.562-00:00"}
 [:db/cas 3 :user/speaker 0N 100N]
 [:db/cas 4 :user/speaker 85N 100N]
 [:db/cas 5 :bar/running? true false]
 {:db/id 5,
  :bar/end-time #inst "2020-02-27T02:00:35.569-00:00",
  :bar/result? false}]

ghadi02:02:15

Don’t send in your own :db/id, use tempids

ghadi02:02:26

Which are strings

ghadi02:02:54

What version of the compute stack are you running? CAS with a boolean might be problematic- I forget.

ghadi02:02:49

I should clarify: only send in integer :db/ids that Datomic handed you @jonwalch

Jon Walch02:02:22

thats what those are 👍

ghadi02:02:38

1 is an integer above

Jon Walch02:02:44

trying to find my datomic cloud version

ghadi02:02:48

Did you print or prn?

Jon Walch02:02:48

yeah I fuzzed the ids

Jon Walch02:02:01

I should've clarified, my bad

ghadi02:02:32

I’m debugging this from my phone, so try to help me out 🙃

😄 4
ghadi02:02:50

Ok if your ids are legit, then take out the boolean CAS and see if you get an error. If you do, I’ll file a report (need your compute stack versions)

Jon Walch02:02:53

DatomicCloudVersion 8812

Jon Walch02:02:01

ComputeCFTVersion 535

Jon Walch02:02:22

Is that what you're looking for?

Jon Walch02:02:41

Changing the code, will report back in ~10

Jon Walch02:02:29

@ghadi removed the cas, working flawlessly

Jon Walch02:02:33

thank you so much!

ghadi02:02:33

You might want to upgrade your stack to latest. I feel like I’ve filed this bug before with the crew but I’ll double check

partywombat 4
tatut13:02:49

In datomic cloud 8812 we had a problem with a big transaction creating entities with multiple levels of nested maps... some children ended up on the wrong parent... the same code on newer version worked correctly. I tried looking at release notes but didn't see bug fixes related to that

hadils15:02:48

Good morning @ghadi @shaun-mahood! I successfully got an complex atomic transaction working this morning! Thanks again for your help!

simple_smile 4
ghadi15:02:06

woot! thanks for following up.

ghadi15:02:12

hopefully the first of many!

souenzzo15:02:16

https://docs.datomic.com/on-prem/pull.html#as-example This example is wrong Should be

[(:artist/name :as "Band Name")]

souenzzo15:03:20

bump it is frustrating for newcomers to fail on running doc examples I feel uncomfortable recommending something that the thin documentation doesn't work

joshkh16:02:11

apologies for the cross post, but i was wondering if anyone has an answer to this forum post regarding a single transaction of two facts about the same entity resolved by a composite tuple? thanks! https://forum.datomic.com/t/conflict-when-transacting-non-unique-values-for-entities-resolved-by-composite-tuples/1367

jthomson10:02:33

That seems like the expected behaviour to me. You're asserting two values for a single-cardinality attribute of one entity, within one transaction. There isn't a concept of "newer" within one transaction, so its a conflict.

jthomson10:02:48

If you split this into two transactions, then of course there would be no problem as you assert abc123 and then abc789

souenzzo15:03:20

bump it is frustrating for newcomers to fail on running doc examples I feel uncomfortable recommending something that the thin documentation doesn't work