Skip to content

Commit 5e33440

Browse files
committed
fix: multiple values for cardinality one attrs
Caused by combining tail with the db.
1 parent cd9d12f commit 5e33440

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/datascript/storage.cljs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,9 +158,11 @@
158158
:max-eid max-eid
159159
:max-tx max-tx})]
160160
(remember-db db)
161-
[db (mapv #(keep (fn [[e a v tx]]
162-
(when (nil? (db/-datoms db :eavt e a v nil))
163-
(db/datom e a v tx))) %)
161+
[db (mapv #(keep (fn [[e a v tx added]]
162+
;; fix unique constraint
163+
(let [datom-exists? (some? (db/-datoms db :eavt e a v nil))]
164+
(when-not (and datom-exists? added)
165+
(db/datom e a v tx added)))) %)
164166
tail)]))))
165167

166168
(defn db-with-tail [db tail]

0 commit comments

Comments
 (0)