changeset 32:68fa98bcc9b5

Slight refactoring that makes the map phase more efficient, but slows down the reduce phase.
author Atul Varma <varmaa@toolness.com>
date Tue, 14 Apr 2009 02:12:34 -0700
parents 8cb658549511
children 51e6b984dfc7
files browser-couch.js
diffstat 1 files changed, 6 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/browser-couch.js	Mon Apr 13 16:55:12 2009 -0700
+++ b/browser-couch.js	Tue Apr 14 02:12:34 2009 -0700
@@ -305,7 +305,7 @@
         mapKeys.push(key);
         item = mapDict[key] = {keys: [], values: []};
       }
-      item.keys.push([key, currDoc.id]);
+      item.keys.push(currDoc.id);
       item.values.push(value);
     }
 
@@ -354,8 +354,11 @@
           do {
             var key = mapKeys[i];
             var item = mapDict[key];
+            var keys = item.keys.map(function pairKeyWithDocId(docId) {
+                                       return [key, docId];
+                                     });
             rows.push({key: key,
-                       value: reduce(item.keys, item.values)});
+                       value: reduce(keys, item.values)});
             i++;
           } while (i - iAtStart < chunkSize &&
                    i < mapKeys.length)
@@ -376,7 +379,7 @@
           var key = mapKeys[i];
           var item = mapDict[key];
           for (var j = 0; j < item.keys.length; j++) {
-            var id = item.keys[j][1];
+            var id = item.keys[j];
             var value = item.values[j];
             rows.push({id: id,
                        key: key,