diff options
author | Jeffrey Straszheim <straszheimjeffrey@gmail.com> | 2009-03-05 23:08:07 +0000 |
---|---|---|
committer | Jeffrey Straszheim <straszheimjeffrey@gmail.com> | 2009-03-05 23:08:07 +0000 |
commit | f087e3a7f8b2f2ca48c07db2a47724ce7b98dce7 (patch) | |
tree | 2dbe6dfb76f470aa71e61ed30fa9baede145ec49 /src | |
parent | ee8d66dfe3306c986b62aabb7aa42ae830ed806e (diff) |
Fixed index issue with item removal
Diffstat (limited to 'src')
-rw-r--r-- | src/clojure/contrib/datalog/database.clj | 7 | ||||
-rw-r--r-- | src/clojure/contrib/datalog/tests/test_database.clj | 6 |
2 files changed, 6 insertions, 7 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" diff --git a/src/clojure/contrib/datalog/tests/test_database.clj b/src/clojure/contrib/datalog/tests/test_database.clj index 445873dc..1aaea324 100644 --- a/src/clojure/contrib/datalog/tests/test_database.clj +++ b/src/clojure/contrib/datalog/tests/test_database.clj @@ -113,8 +113,6 @@ {:becky {3 #{{:jen 1, :joan 0, :becky 3}} - 4 - #{} 2 #{{:jen 1, :joan 3, :becky 2}}} :jen @@ -126,9 +124,7 @@ #{{:sue 2, :mary 1} {:sue 3, :mary 2}} {:mary - {3 - #{} - 2 + {2 #{{:sue 3, :mary 2}} 1 #{{:sue 2, :mary 1}}}})}))))) |