You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ei...@apache.org on 2015/06/29 21:23:05 UTC

couch-index commit: updated refs/heads/master to 13fed1e

Repository: couchdb-couch-index
Updated Branches:
  refs/heads/master e15bed80e -> 13fed1ed2


Allow get_index to receive DDoc as a doc record

The function `couch_mrview:compact/3` is passing to `get_index`
a prepared #doc record, when `get_index` is expecting DDoc
to be a ddoc's id. As a result view's compaction is crashing
after `fabric:open_doc` call.

This patch allows get_index to receive #doc record directly.

This closes COUCH-2729


Project: http://git-wip-us.apache.org/repos/asf/couchdb-couch-index/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-couch-index/commit/13fed1ed
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-couch-index/tree/13fed1ed
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-couch-index/diff/13fed1ed

Branch: refs/heads/master
Commit: 13fed1ed28976aa1ed3fc92d30336ea53d837894
Parents: e15bed8
Author: Eric Avdey <ei...@eiri.ca>
Authored: Thu Jun 25 18:42:14 2015 -0300
Committer: Eric Avdey <ei...@eiri.ca>
Committed: Thu Jun 25 18:42:14 2015 -0300

----------------------------------------------------------------------
 src/couch_index_server.erl | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-couch-index/blob/13fed1ed/src/couch_index_server.erl
----------------------------------------------------------------------
diff --git a/src/couch_index_server.erl b/src/couch_index_server.erl
index b8c29f0..4b60a39 100644
--- a/src/couch_index_server.erl
+++ b/src/couch_index_server.erl
@@ -67,7 +67,10 @@ validate(DbName, DDoc) ->
 
 
 get_index(Module, #db{name = <<"shards/", _/binary>> = DbName}, DDoc) ->
-    get_index(Module, DbName, DDoc);
+    case is_record(DDoc, doc) of
+        true -> get_index(Module, DbName, DDoc, nil);
+        false -> get_index(Module, DbName, DDoc)
+    end;
 get_index(Module, <<"shards/", _/binary>> = DbName, DDoc) ->
     {Pid, Ref} = spawn_monitor(fun() ->
         exit(fabric:open_doc(mem3:dbname(DbName), DDoc, [ejson_body]))