Skip to content

Instantly share code, notes, and snippets.

@spieden
Last active November 30, 2015 21:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save spieden/2763fb6be1e4710c54ad to your computer and use it in GitHub Desktop.
Save spieden/2763fb6be1e4710c54ad to your computer and use it in GitHub Desktop.
; asserting cardinality many ref values using lookup refs appears not to work:
{:db/index true,
:db/unique :db.unique/identity,
:db/valueType :db.type/string,
:db/noHistory false,
:db/isComponent false,
:db.install/_attribute :db.part/db,
:db/fulltext false,
:db/cardinality :db.cardinality/one,
:db/doc "",
:db/id {:part :db.part/db, :idx -1000058},
:db/ident :variant-context/id}
{:db/index false,
:db/valueType :db.type/ref,
:db/noHistory false,
:db/isComponent false,
:db.install/_attribute :db.part/db,
:db/fulltext false,
:db/cardinality :db.cardinality/many,
:db/doc "",
:db/id {:part :db.part/db, :idx -1000273},
:db/ident :sample/variant-contexts}
@(d/transact conn [{:db/id (d/tempid :db.part/user) :variant-context/id "foo"}])
=> {:db-before datomic.db.Db@d0cd4c4d, :db-after datomic.db.Db@9bbff236, :tx-data [#datom[13194139534318 50 #inst "2015-11-30T20:28:32.309-00:00" 13194139534318 true] #datom[17592186045423 71 "foo" 13194139534318 true]], :tempids {-9223350046623220360 17592186045423}}
(d/entity (d/db conn) [:variant-context/id "foo"])
=> {:db/id 17592186045423}
@(d/transact conn [{:db/id (d/tempid :db.part/user) :sample/variant-contexts [:variant-context/id "foo"]}])
IllegalArgumentExceptionInfo :db.error/not-an-entity Unable to resolve entity: foo in datom [#db/id[:db.part/user -1000073] :sample/variant-contexts "foo"] datomic.error/arg (error.clj:57)
@(d/transact conn [{:db/id (d/tempid :db.part/user) :sample/variant-contexts 17592186045423}])
=> {:db-before datomic.db.Db@9bbff236, :db-after datomic.db.Db@1acb01b2, :tx-data [#datom[13194139534320 50 #inst "2015-11-30T20:29:00.607-00:00" 13194139534320 true] #datom[17592186045425 70 17592186045423 13194139534320 true]], :tempids {-9223350046623220362 17592186045425}}
; now change cardinality on :sample/variant-contexts to one and repeat:
{:db/index false,
:db/valueType :db.type/ref,
:db/noHistory false,
:db/isComponent true,
:db.install/_attribute :db.part/db,
:db/fulltext false,
:db/cardinality :db.cardinality/one,
:db/doc "",
:db/id {:part :db.part/db, :idx -1000057},
:db/ident :sample/variant-contexts}
@(d/transact conn [{:db/id (d/tempid :db.part/user) :variant-context/id "foo"}])
=> {:db-before datomic.db.Db@88357062, :db-after datomic.db.Db@ac198ac, :tx-data [#datom[13194139534318 50 #inst "2015-11-30T20:59:36.522-00:00" 13194139534318 true] #datom[17592186045423 71 "foo" 13194139534318 true]], :tempids {-9223350046623220352 17592186045423}}
(d/entity (d/db conn) [:variant-context/id "foo"])
=> {:db/id 17592186045423}
@(d/transact conn [{:db/id (d/tempid :db.part/user) :sample/variant-contexts [:variant-context/id "foo"]}])
=> {:db-before datomic.db.Db@ac198ac, :db-after datomic.db.Db@b72bc00f, :tx-data [#datom[13194139534320 50 #inst "2015-11-30T20:59:50.938-00:00" 13194139534320 true] #datom[17592186045425 70 17592186045423 13194139534320 true]], :tempids {-9223350046623220353 17592186045425}}
; scenarios are identical except that in the first cardinality is many and in the second it's one!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment