Are tuples required to be non-empty? I'm using datalevin embedded 1.0.2 I have a field with schema such as :sf/emails {:db/valueType :db.type/tuple :db/tupleType :db.type/string} If I transact data that looks like {:sf/foo "hi" :sf/emails []} I get an error. Works fine if the tuple is non-empty.
1. Unhandled java.lang.IndexOutOfBoundsException
(No message)
PersistentVector.java: 162 clojure.lang.PersistentVector/arrayFor
PersistentVector.java: 166 clojure.lang.PersistentVector/nth
RT.java: 916 clojure.lang.RT/nth
bits.clj: 636 datalevin.bits/put-homo-tuple
bits.clj: 632 datalevin.bits/put-homo-tuple
bits.clj: 784 datalevin.bits/tuple-bytes
bits.clj: 777 datalevin.bits/tuple-bytes
bits.clj: 805 datalevin.bits/val-bytes
bits.clj: 791 datalevin.bits/val-bytes
bits.clj: 886 datalevin.bits/indexable
bits.clj: 880 datalevin.bits/indexable
storage.clj: 2711 datalevin.storage/insert-datom
storage.clj: 2696 datalevin.storage/insert-datom
storage.clj: 2873 datalevin.storage/prepare-datoms-kv-plan/fn
storage.clj: 2870 datalevin.storage/prepare-datoms-kv-plan
storage.clj: 2841 datalevin.storage/prepare-datoms-kv-plan
storage.clj: 2659 datalevin.storage/load-datoms-with-plan!/fn
storage.clj: 2658 datalevin.storage/load-datoms-with-plan!
storage.clj: 2653 datalevin.storage/load-datoms-with-plan!
db.clj: 1386 datalevin.db/commit-prepared-tx-data!
db.clj: 1351 datalevin.db/commit-prepared-tx-data!
db.clj: 1312 datalevin.db/local-transact-tx-data
db.clj: 1302 datalevin.db/local-transact-tx-data
db.clj: 1623 datalevin.db/transact-tx-data
db.clj: 1588 datalevin.db/transact-tx-data
conn.clj: 364 datalevin.conn/with
conn.clj: 360 datalevin.conn/with
conn.clj: 362 datalevin.conn/with
conn.clj: 360 datalevin.conn/with
conn.clj: 392 datalevin.conn/direct-local-transact!/helper24936
conn.clj: -1 datalevin.conn/direct-local-transact!/helper24936
conn.clj: 389 datalevin.conn/direct-local-transact!
conn.clj: 381 datalevin.conn/direct-local-transact!
conn.clj: 472 datalevin.conn/-transact!
conn.clj: 469 datalevin.conn/-transact!
conn.clj: 487 datalevin.conn/run-transact-now!
conn.clj: 485 datalevin.conn/run-transact-now!
conn.clj: 617 datalevin.conn/transact!
Indeed, tuples need to be non-empty.
ok. thanks
I can improve the error message to be more clear
that would be great. Should I create an issue?
It's ok. I am changing the code right now. Will be available in the next version.