You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by fd...@apache.org on 2010/10/25 20:06:03 UTC

svn commit: r1027215 - in /couchdb/trunk: share/www/script/test/design_docs.js src/couchdb/couch_view_group.erl

Author: fdmanana
Date: Mon Oct 25 18:06:02 2010
New Revision: 1027215

URL: http://svn.apache.org/viewvc?rev=1027215&view=rev
Log:
GET /db/_design/doc/_info should not trigger an update.
Closes COUCHDB-858.

Patch by Klaus Trainer. Thanks Klaus.

Modified:
    couchdb/trunk/share/www/script/test/design_docs.js
    couchdb/trunk/src/couchdb/couch_view_group.erl

Modified: couchdb/trunk/share/www/script/test/design_docs.js
URL: http://svn.apache.org/viewvc/couchdb/trunk/share/www/script/test/design_docs.js?rev=1027215&r1=1027214&r2=1027215&view=diff
==============================================================================
--- couchdb/trunk/share/www/script/test/design_docs.js (original)
+++ couchdb/trunk/share/www/script/test/design_docs.js Mon Oct 25 18:06:02 2010
@@ -104,15 +104,37 @@ function() {
   T(xhr.status == 200);
   TEquals("javascript", JSON.parse(xhr.responseText).language);
 
+  var prev_view_sig = db.designInfo("_design/test").view_index.signature;
+
+  db.bulkSave(makeDocs(1, numDocs + 1));
+
   // test that we get design doc info back
   var dinfo = db.designInfo("_design/test");
   TEquals("test", dinfo.name);
   var vinfo = dinfo.view_index;
   TEquals(51, vinfo.disk_size);
   TEquals(false, vinfo.compact_running);
-  TEquals("dc3264b45b74cc6d94666e3043e07154", vinfo.signature, 'ddoc sig');
+  // test that GET /db/_design/test/_info
+  // hasn't triggered an update of the views
+  TEquals(prev_view_sig, vinfo.signature, 'ddoc sig');
+  for (var loop = 0; loop < 2; loop++) {
+    T(db.view("test/all_docs_twice", {stale: "ok"}).total_rows === 0);
+    T(db.view("test/single_doc", {stale: "ok"}).total_rows === 0);
+    T(db.view("test/summate", {stale: "ok"}).rows.length === 0);
+    T(db.ensureFullCommit().ok);
+    restartServer();
+  };
 
-  db.bulkSave(makeDocs(1, numDocs + 1));
+  // test that POST /db/_view_cleanup
+  // doesn't trigger an update of the views
+  T(db.viewCleanup().ok);
+  for (var loop = 0; loop < 2; loop++) {
+    T(db.view("test/all_docs_twice", {stale: "ok"}).total_rows == 0);
+    T(db.view("test/single_doc", {stale: "ok"}).total_rows == 0);
+    T(db.view("test/summate", {stale: "ok"}).rows.length == 0);
+    T(db.ensureFullCommit().ok);
+    restartServer();
+  };
 
   // test commonjs in map functions
   resp = db.view("test/commonjs", {limit:1});
@@ -127,9 +149,9 @@ function() {
     for (var i = 0; i < numDocs; i++) {
       T(rows[2*i].key == i+1);
       T(rows[(2*i)+1].key == i+1);
-    }
-    T(db.view("test/no_docs").total_rows == 0)
-    T(db.view("test/single_doc").total_rows == 1)
+    };
+    T(db.view("test/no_docs").total_rows == 0);
+    T(db.view("test/single_doc").total_rows == 1);
     T(db.ensureFullCommit().ok);
     restartServer();
   };

Modified: couchdb/trunk/src/couchdb/couch_view_group.erl
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_view_group.erl?rev=1027215&r1=1027214&r2=1027215&view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_view_group.erl (original)
+++ couchdb/trunk/src/couchdb/couch_view_group.erl Mon Oct 25 18:06:02 2010
@@ -85,15 +85,10 @@ init({InitArgs, ReturnPid, Ref}) ->
             ignore;
         _ ->
             couch_db:monitor(Db),
-            Owner = self(),
-            Pid = spawn_link(
-                fun()-> couch_view_updater:update(Owner, Group) end
-            ),
             {ok, RefCounter} = couch_ref_counter:start([Fd]),
             {ok, #group_state{
                     db_name=couch_db:name(Db),
                     init_args=InitArgs,
-                    updater_pid = Pid,
                     group=Group,
                     ref_counter=RefCounter}}
         end;