aboutsummaryrefslogtreecommitdiff
path: root/src/clojure/contrib/datalog/database.clj
diff options
context:
space:
mode:
authorJeffrey Straszheim <straszheimjeffrey@gmail.com>2009-03-05 23:08:07 +0000
committerJeffrey Straszheim <straszheimjeffrey@gmail.com>2009-03-05 23:08:07 +0000
commitf087e3a7f8b2f2ca48c07db2a47724ce7b98dce7 (patch)
tree2dbe6dfb76f470aa71e61ed30fa9baede145ec49 /src/clojure/contrib/datalog/database.clj
parentee8d66dfe3306c986b62aabb7aa42ae830ed806e (diff)
Fixed index issue with item removal
Diffstat (limited to 'src/clojure/contrib/datalog/database.clj')
-rw-r--r--src/clojure/contrib/datalog/database.clj7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/clojure/contrib/datalog/database.clj b/src/clojure/contrib/datalog/database.clj
index a24f093c..aba41df9 100644
--- a/src/clojure/contrib/datalog/database.clj
+++ b/src/clojure/contrib/datalog/database.clj
@@ -152,8 +152,11 @@
(into {} (for [ik (keys idxs)]
(let [im (idxs ik)
iv (tuple ik)
- os (get im iv #{})]
- [ik (assoc im iv (f os tuple))]))))
+ os (get im iv #{})
+ ns (f os tuple)]
+ [ik (if (empty? ns)
+ (dissoc im iv)
+ (assoc im iv (f os tuple)))]))))
(defn- add-to-indexes
"Adds the tuple to the appropriate keys in the index map"