From 417ae1ed9251dff5479c8f93fc84453f650820d0 Mon Sep 17 00:00:00 2001 From: Nick Alexander Date: Wed, 3 Aug 2016 17:02:20 -0700 Subject: [PATCH] Allow false; fail if too many components in vector given. --- src/datomish/db.cljc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/datomish/db.cljc b/src/datomish/db.cljc index ce129683..fe62acb6 100644 --- a/src/datomish/db.cljc +++ b/src/datomish/db.cljc @@ -504,7 +504,7 @@ (let [[op e a v tx] entity] [op e a v (or tx current-tx)])) -(defn ensure-entity-form [[op e a v tx :as entity]] +(defn ensure-entity-form [[op e a v tx & rest :as entity]] (cond (not (sequential? entity)) (raise "Bad entity " entity ", should be sequential at this point" @@ -514,18 +514,22 @@ (raise "Unrecognized operation " op " expected one of :db/add :db/retract at this point" {:error :transact/bad-operation :entity entity }) - (not e) + (nil? e) (raise "Bad entity: nil e in " entity {:error :transact/bad-entity :entity entity }) - (not a) + (nil? a) (raise "Bad entity: nil a in " entity {:error :transact/bad-entity :entity entity }) - (not v) + (nil? v) (raise "Bad entity: nil v in " entity {:error :transact/bad-entity :entity entity }) + (some? rest) + (raise "Bad entity: too long " entity + {:error :transact/bad-entity :entity entity }) + true entity))