<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -24,12 +24,7 @@ module StrokeDB
     # Perform a simple search
     # search(:a =&gt; xxx, :b =&gt; yyy, ...)
     def search(slots)
-      view = @all_slots_view
-      view.key_traversal([], slots) do |key, value|
-        view.find(key + [value]) 
-      end.inject do |set, subset|
-        set &amp; subset
-      end
+      @all_slots_view.search(slots)
     end
     
     def include?(uuid,version=nil)</diff>
      <filename>lib/strokedb/store.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,14 +1,27 @@
 module StrokeDB
+  
+  MAGIC_ALL_SLOTS_VIEW_SEPARATOR = &quot;47f16bd6-7c22-4f6c-aafb-2e1f121a7f85&quot;.freeze
+  
   def GenerateAllSlotsView(store)
     View.named(store, &quot;strokedb_all_slots&quot;) do |view|
+      
       def view.map(uuid, doc)
         doc.slotnames.inject([]) do |pairs, sname|
           value = doc[sname]
           key_traversal([sname], value, pairs) do |k, v|
-            [k + [v, doc], doc]
+            [k + [v, MAGIC_ALL_SLOTS_VIEW_SEPARATOR, doc], doc]
           end
         end
       end
+      
+      def view.search(query)
+        key_traversal([], query) do |key, value|
+          find(key + [value, MAGIC_ALL_SLOTS_VIEW_SEPARATOR]) 
+        end.inject do |set, subset|
+          set &amp; subset
+        end
+      end
+      
       def view.key_traversal(key, value, ax = [], &amp;block)
         case value
         when Array
@@ -20,7 +33,7 @@ module StrokeDB
             key_traversal(key + kv[0,1], kv[1], bx, &amp;block)
           end
         else
-          ax &lt;&lt; yield(key, value)
+          ax &lt;&lt; yield(key, value.to_s)
           ax
         end
       end</diff>
      <filename>lib/strokedb/views/all_slots_view.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>df6ca942770ce87b909fd00650d74aac6e4438c3</id>
    </parent>
  </parents>
  <author>
    <name>Oleg Andreev</name>
    <email>oleganza@idbns.com</email>
  </author>
  <url>http://github.com/yrashk/strokedb/commit/213ba5474ddf5ec1a87ee7da669fd6df788363ba</url>
  <id>213ba5474ddf5ec1a87ee7da669fd6df788363ba</id>
  <committed-date>2008-05-24T06:53:31-07:00</committed-date>
  <authored-date>2008-05-24T06:53:31-07:00</authored-date>
  <message>fixed issues with blank values in an AllSlotsView</message>
  <tree>f7b4c8990a3ac419f723b3deae98689a44d249d9</tree>
  <committer>
    <name>Oleg Andreev</name>
    <email>oleganza@idbns.com</email>
  </committer>
</commit>
