You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by da...@apache.org on 2017/04/04 21:06:45 UTC

[01/12] couch-mrview commit: updated refs/heads/COUCHDB-3288-remove-public-db-record to 66274de [Forced Update!]

Repository: couchdb-couch-mrview
Updated Branches:
  refs/heads/COUCHDB-3288-remove-public-db-record a27144733 -> 66274de21 (forced update)


Refactor mrview_index get

This is a simple refactoring of mrview's
get function that uses function's pattern
matching instead of staircase case.

Arguably this makes code easier to read
and more idiomatic.


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

Branch: refs/heads/COUCHDB-3288-remove-public-db-record
Commit: f7f4db2660f3196916ccbdb9dc25cfc5d709a19f
Parents: 15a1ae9
Author: Eric Avdey <ei...@eiri.ca>
Authored: Tue Feb 7 10:39:46 2017 -0400
Committer: Eric Avdey <ei...@eiri.ca>
Committed: Wed Feb 8 12:31:18 2017 -0400

----------------------------------------------------------------------
 src/couch_mrview_index.erl | 152 +++++++++++++++++++---------------------
 1 file changed, 74 insertions(+), 78 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/blob/f7f4db26/src/couch_mrview_index.erl
----------------------------------------------------------------------
diff --git a/src/couch_mrview_index.erl b/src/couch_mrview_index.erl
index 95698bc..47245bd 100644
--- a/src/couch_mrview_index.erl
+++ b/src/couch_mrview_index.erl
@@ -23,84 +23,80 @@
 -include_lib("couch_mrview/include/couch_mrview.hrl").
 
 
-get(Property, State) ->
-    case Property of
-        db_name ->
-            State#mrst.db_name;
-        idx_name ->
-            State#mrst.idx_name;
-        signature ->
-            State#mrst.sig;
-        update_seq ->
-            State#mrst.update_seq;
-        purge_seq ->
-            State#mrst.purge_seq;
-        update_options ->
-            Opts = State#mrst.design_opts,
-            IncDesign = couch_util:get_value(<<"include_design">>, Opts, false),
-            LocalSeq = couch_util:get_value(<<"local_seq">>, Opts, false),
-            SeqIndexed = couch_util:get_value(<<"seq_indexed">>, Opts, false),
-            KeySeqIndexed = couch_util:get_value(<<"keyseq_indexed">>, Opts, false),
-            if IncDesign -> [include_design]; true -> [] end
-                ++ if LocalSeq -> [local_seq]; true -> [] end
-                ++ if KeySeqIndexed -> [keyseq_indexed]; true -> [] end
-                ++ if SeqIndexed -> [seq_indexed]; true -> [] end;
-        fd ->
-            State#mrst.fd;
-        language ->
-            State#mrst.language;
-        views ->
-            State#mrst.views;
-        info ->
-            #mrst{
-                fd = Fd,
-                sig = Sig,
-                id_btree = IdBtree,
-                log_btree = LogBtree,
-                language = Lang,
-                update_seq = UpdateSeq,
-                purge_seq = PurgeSeq,
-                views = Views,
-                design_opts = Opts
-            } = State,
-            {ok, FileSize} = couch_file:bytes(Fd),
-            {ok, ExternalSize} = couch_mrview_util:calculate_external_size(Views),
-            LogBtSize = case LogBtree of
-                nil ->
-                    0;
-                _ ->
-                    couch_btree:size(LogBtree)
-            end,
-            ActiveSize = couch_btree:size(IdBtree) + LogBtSize + ExternalSize,
-
-            IncDesign = couch_util:get_value(<<"include_design">>, Opts, false),
-            LocalSeq = couch_util:get_value(<<"local_seq">>, Opts, false),
-            SeqIndexed = couch_util:get_value(<<"seq_indexed">>, Opts, false),
-            KeySeqIndexed = couch_util:get_value(<<"keyseq_indexed">>, Opts, false),
-            UpdateOptions =
-                if IncDesign -> [<<"include_design">>]; true -> [] end
-                ++ if LocalSeq -> [<<"local_seq">>]; true -> [] end
-                ++ if KeySeqIndexed -> [<<"keyseq_indexed">>]; true -> [] end
-                ++ if SeqIndexed -> [<<"seq_indexed">>]; true -> [] end,
-
-
-            {ok, [
-                {signature, list_to_binary(couch_index_util:hexsig(Sig))},
-                {language, Lang},
-                {disk_size, FileSize}, % legacy
-                {data_size, ExternalSize}, % legacy
-                {sizes, {[
-                    {file, FileSize},
-                    {active, ActiveSize},
-                    {external, ExternalSize}
-                ]}},
-                {update_seq, UpdateSeq},
-                {purge_seq, PurgeSeq},
-                {update_options, UpdateOptions}
-            ]};
-        Other ->
-            throw({unknown_index_property, Other})
-    end.
+get(db_name, #mrst{db_name = DbName}) ->
+    DbName;
+get(idx_name, #mrst{idx_name = IdxName}) ->
+    IdxName;
+get(signature, #mrst{sig = Signature}) ->
+    Signature;
+get(update_seq, #mrst{update_seq = UpdateSeq}) ->
+    UpdateSeq;
+get(purge_seq, #mrst{purge_seq = PurgeSeq}) ->
+    PurgeSeq;
+get(update_options, #mrst{design_opts = Opts}) ->
+    IncDesign = couch_util:get_value(<<"include_design">>, Opts, false),
+    LocalSeq = couch_util:get_value(<<"local_seq">>, Opts, false),
+    SeqIndexed = couch_util:get_value(<<"seq_indexed">>, Opts, false),
+    KeySeqIndexed = couch_util:get_value(<<"keyseq_indexed">>, Opts, false),
+    if IncDesign -> [include_design]; true -> [] end
+        ++ if LocalSeq -> [local_seq]; true -> [] end
+        ++ if KeySeqIndexed -> [keyseq_indexed]; true -> [] end
+        ++ if SeqIndexed -> [seq_indexed]; true -> [] end;
+get(fd, #mrst{fd = Fd}) ->
+    Fd;
+get(language, #mrst{language = Language}) ->
+    Language;
+get(views, #mrst{views = Views}) ->
+    Views;
+get(info, State) ->
+    #mrst{
+        fd = Fd,
+        sig = Sig,
+        id_btree = IdBtree,
+        log_btree = LogBtree,
+        language = Lang,
+        update_seq = UpdateSeq,
+        purge_seq = PurgeSeq,
+        views = Views,
+        design_opts = Opts
+    } = State,
+    {ok, FileSize} = couch_file:bytes(Fd),
+    {ok, ExternalSize} = couch_mrview_util:calculate_external_size(Views),
+    LogBtSize = case LogBtree of
+        nil ->
+            0;
+        _ ->
+            couch_btree:size(LogBtree)
+    end,
+    ActiveSize = couch_btree:size(IdBtree) + LogBtSize + ExternalSize,
+
+    IncDesign = couch_util:get_value(<<"include_design">>, Opts, false),
+    LocalSeq = couch_util:get_value(<<"local_seq">>, Opts, false),
+    SeqIndexed = couch_util:get_value(<<"seq_indexed">>, Opts, false),
+    KeySeqIndexed = couch_util:get_value(<<"keyseq_indexed">>, Opts, false),
+    UpdateOptions =
+        if IncDesign -> [<<"include_design">>]; true -> [] end
+        ++ if LocalSeq -> [<<"local_seq">>]; true -> [] end
+        ++ if KeySeqIndexed -> [<<"keyseq_indexed">>]; true -> [] end
+        ++ if SeqIndexed -> [<<"seq_indexed">>]; true -> [] end,
+
+
+    {ok, [
+        {signature, list_to_binary(couch_index_util:hexsig(Sig))},
+        {language, Lang},
+        {disk_size, FileSize}, % legacy
+        {data_size, ExternalSize}, % legacy
+        {sizes, {[
+            {file, FileSize},
+            {active, ActiveSize},
+            {external, ExternalSize}
+        ]}},
+        {update_seq, UpdateSeq},
+        {purge_seq, PurgeSeq},
+        {update_options, UpdateOptions}
+    ]};
+get(Other, _) ->
+    throw({unknown_index_property, Other}).
 
 
 init(Db, DDoc) ->


[02/12] couch-mrview commit: updated refs/heads/COUCHDB-3288-remove-public-db-record to 66274de

Posted by da...@apache.org.
Re-use get update_options in get(info)


Project: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/commit/8b1c137e
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/tree/8b1c137e
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/diff/8b1c137e

Branch: refs/heads/COUCHDB-3288-remove-public-db-record
Commit: 8b1c137ea4decca2ac4f3717b71f369fbdb5d7b5
Parents: f7f4db2
Author: Eric Avdey <ei...@eiri.ca>
Authored: Wed Feb 8 14:05:37 2017 -0400
Committer: Eric Avdey <ei...@eiri.ca>
Committed: Wed Feb 8 14:05:37 2017 -0400

----------------------------------------------------------------------
 src/couch_mrview_index.erl | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/blob/8b1c137e/src/couch_mrview_index.erl
----------------------------------------------------------------------
diff --git a/src/couch_mrview_index.erl b/src/couch_mrview_index.erl
index 47245bd..a65bc94 100644
--- a/src/couch_mrview_index.erl
+++ b/src/couch_mrview_index.erl
@@ -74,12 +74,9 @@ get(info, State) ->
     LocalSeq = couch_util:get_value(<<"local_seq">>, Opts, false),
     SeqIndexed = couch_util:get_value(<<"seq_indexed">>, Opts, false),
     KeySeqIndexed = couch_util:get_value(<<"keyseq_indexed">>, Opts, false),
-    UpdateOptions =
-        if IncDesign -> [<<"include_design">>]; true -> [] end
-        ++ if LocalSeq -> [<<"local_seq">>]; true -> [] end
-        ++ if KeySeqIndexed -> [<<"keyseq_indexed">>]; true -> [] end
-        ++ if SeqIndexed -> [<<"seq_indexed">>]; true -> [] end,
 
+    UpdateOptions0 = get(update_options, State),
+    UpdateOptions = [atom_to_binary(O, latin1) || O <- UpdateOptions0],
 
     {ok, [
         {signature, list_to_binary(couch_index_util:hexsig(Sig))},


[09/12] couch-mrview commit: updated refs/heads/COUCHDB-3288-remove-public-db-record to 66274de

Posted by da...@apache.org.
Fix unit tests in couch_mrview_compactor

This fixes the two tests that are in couch_mrview_compactor.erl. For
some reason they don't always run in CI or even for local `make check`
runs. However when they do run they fail as they don't account for how
couch_index_updater:update/3 works and don't start couch_log.

The theory for why these don't always run is related to how meck loads
modules. I'm told that these should probably be moved to
test/couch_mrview_compactor_tests.erl but then that would remove access
to the recompact/1 function. For now I'll leave them here I guess and if
they do ever run they'll not break the build now.


Project: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/commit/3c70ae90
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/tree/3c70ae90
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/diff/3c70ae90

Branch: refs/heads/COUCHDB-3288-remove-public-db-record
Commit: 3c70ae90ba6b45fb86641b88fca0d88059121d34
Parents: f897fdc
Author: Paul J. Davis <pa...@gmail.com>
Authored: Wed Feb 8 12:11:47 2017 -0600
Committer: Paul J. Davis <pa...@gmail.com>
Committed: Thu Mar 23 16:52:30 2017 -0500

----------------------------------------------------------------------
 src/couch_mrview_compactor.erl | 30 +++++++++++++++++++-----------
 1 file changed, 19 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/blob/3c70ae90/src/couch_mrview_compactor.erl
----------------------------------------------------------------------
diff --git a/src/couch_mrview_compactor.erl b/src/couch_mrview_compactor.erl
index 5957908..9ef79b6 100644
--- a/src/couch_mrview_compactor.erl
+++ b/src/couch_mrview_compactor.erl
@@ -307,13 +307,16 @@ recompact_success_after_progress() ->
     ?_test(begin
         ok = meck:expect(couch_index_updater, update, fun
             (Pid, _, #mrst{update_seq=0} = State) ->
-                Pid ! {'$gen_cast', {new_state, State#mrst{update_seq=1}}};
-            (_, _, State) ->
-                exit({updated, self(), State})
+                Pid ! {'$gen_cast', {new_state, State#mrst{update_seq = 1}}},
+                timer:sleep(100),
+                exit({updated, self(), State#mrst{update_seq = 2}})
         end),
-        State = #mrst{fd=self(), update_seq=0},
-        ?assertEqual({ok, State#mrst{update_seq=1}}, recompact(State)),
-        meck:unload(couch_index_updater)
+        try
+            State = #mrst{fd=self(), update_seq=0},
+            ?assertEqual({ok, State#mrst{update_seq = 2}}, recompact(State))
+        after
+            meck:unload(couch_index_updater)
+        end
     end).
 
 recompact_exceeded_retry_count() ->
@@ -322,11 +325,16 @@ recompact_exceeded_retry_count() ->
             fun(_, _, _) ->
                 exit(error)
         end),
-        State = #mrst{fd=self(), db_name=foo, idx_name=bar},
-        ExpectedError = {exceeded_recompact_retry_count,
-            [{db_name, foo}, {idx_name, bar}]},
-        ?assertError(ExpectedError, recompact(State)),
-        meck:unload(couch_index_updater)
+        ok = meck:expect(couch_log, warning, fun(_, _) -> ok end),
+        try
+            State = #mrst{fd=self(), db_name=foo, idx_name=bar},
+            ExpectedError = {exceeded_recompact_retry_count,
+                [{db_name, foo}, {idx_name, bar}]},
+                ?assertError(ExpectedError, recompact(State))
+        after
+            meck:unload(couch_log),
+            meck:unload(couch_index_updater)
+        end
     end).
 
 -endif.


[07/12] couch-mrview commit: updated refs/heads/COUCHDB-3288-remove-public-db-record to 66274de

Posted by da...@apache.org.
Add send_list_row test suite


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

Branch: refs/heads/COUCHDB-3288-remove-public-db-record
Commit: c01d4c088e1073c669e900cc14d0404a00ea36ff
Parents: 56616fa
Author: Jay Doane <ja...@gmail.com>
Authored: Wed Mar 15 23:01:28 2017 -0700
Committer: Jay Doane <ja...@gmail.com>
Committed: Wed Mar 15 23:01:28 2017 -0700

----------------------------------------------------------------------
 src/couch_mrview_show.erl | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/blob/c01d4c08/src/couch_mrview_show.erl
----------------------------------------------------------------------
diff --git a/src/couch_mrview_show.erl b/src/couch_mrview_show.erl
index f79ad62..4f59acc 100644
--- a/src/couch_mrview_show.erl
+++ b/src/couch_mrview_show.erl
@@ -424,4 +424,42 @@ should_apply_headers_with_merge_overwrite() ->
         ?assertEqual({NewHeaders}, JsonHeaders)
     end).
 
+
+send_list_row_test_() ->
+    Cases = couch_tests_combinatorics:product([
+        [
+            {"[<<\"end\">>, [], []]", fun(_, _) -> [<<"end">>, [], []] end},
+            {"[<<\"end\">>, []]", fun(_, _) -> [<<"end">>, []] end},
+            {"throw(timeout)", fun(_, _) -> throw(timeout) end}
+        ],
+        [
+            req,
+            undefined
+        ]]),
+    {"Ensure send_list_row returns a valid response on end or error",
+        {setup, fun setup/0, fun(_) -> meck:unload() end, [
+            {
+                lists:flatten(io_lib:format("~s -- ~p", [N, R])),
+                should_return_valid_response(F, R)
+            } || [{N, F}, R] <- Cases
+        ]}
+    }.
+
+setup() ->
+    ok = meck:expect(chttpd, send_chunk,
+        fun(Resp, _) -> {ok, Resp} end),
+    ok = meck:expect(chttpd, send_chunked_error,
+        fun(Resp, _) -> {ok, Resp} end),
+    ok = meck:expect(chttpd, start_chunked_response,
+        fun(_, _, _) -> {ok, resp} end),
+    ok = meck:expect(chttpd_external, parse_external_response, 1,
+        #extern_resp_args{headers = []}).
+
+should_return_valid_response(Spec, Req) ->
+    ?_test(begin
+        ok = meck:expect(couch_query_servers, proc_prompt, Spec),
+        Acc = #lacc{qserver = {proc, undefined}, req = Req, resp = resp},
+        ?assertEqual({stop, resp}, send_list_row([], Acc))
+    end).
+
 -endif.


[11/12] couch-mrview commit: updated refs/heads/COUCHDB-3288-remove-public-db-record to 66274de

Posted by da...@apache.org.
Merge remote branch 'cloudant:fix-unused-variable-warning'

This closes #73

Signed-off-by: Eric Avdey <ei...@eiri.ca>


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

Branch: refs/heads/COUCHDB-3288-remove-public-db-record
Commit: f08c26a098a46366cfaf0e14b940af1f11d84577
Parents: 3c70ae9 5954ef6
Author: Eric Avdey <ei...@eiri.ca>
Authored: Fri Mar 31 11:10:32 2017 -0300
Committer: Eric Avdey <ei...@eiri.ca>
Committed: Fri Mar 31 11:10:32 2017 -0300

----------------------------------------------------------------------
 src/couch_mrview_index.erl | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)
----------------------------------------------------------------------



[04/12] couch-mrview commit: updated refs/heads/COUCHDB-3288-remove-public-db-record to 66274de

Posted by da...@apache.org.
Fix undef error on empty list function response

Prior to this commit, if a list function did not return any data or
returned an error, it would return a #lacc{} record from list_cb/2
rather than a valid #mochiweb_response{} record. This would cause chttpd
to crash. This commit fixes this bug by always returning a valid
record.


Project: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/commit/56616fad
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/tree/56616fad
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/diff/56616fad

Branch: refs/heads/COUCHDB-3288-remove-public-db-record
Commit: 56616fad9b0621b6606e4b521a2ec4b8342877aa
Parents: e1d13a9
Author: Benjamin Bastian <be...@gmail.com>
Authored: Thu Mar 9 18:20:25 2017 -0800
Committer: Benjamin Bastian <be...@gmail.com>
Committed: Thu Mar 9 18:20:25 2017 -0800

----------------------------------------------------------------------
 src/couch_mrview_show.erl | 26 ++++++++++++--------------
 1 file changed, 12 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/blob/56616fad/src/couch_mrview_show.erl
----------------------------------------------------------------------
diff --git a/src/couch_mrview_show.erl b/src/couch_mrview_show.erl
index 52e07a7..f79ad62 100644
--- a/src/couch_mrview_show.erl
+++ b/src/couch_mrview_show.erl
@@ -284,26 +284,24 @@ send_list_row(Row, #lacc{qserver = {Proc, _}, req = Req, resp = Resp} = Acc) ->
         Acc2 = send_non_empty_chunk(Acc, Chunk),
         {ok, Acc2};
     [<<"end">>, Chunk, Headers] ->
-        Acc2 = send_non_empty_chunk(fixup_headers(Headers, Acc), Chunk),
-        #lacc{resp = Resp2} = Acc2,
-        last_chunk(Req, Resp2),
-        {stop, Acc2};
+        #lacc{resp = Resp2} = send_non_empty_chunk(fixup_headers(Headers, Acc), Chunk),
+        {ok, Resp3} = last_chunk(Req, Resp2),
+        {stop, Resp3};
     [<<"end">>, Chunk] ->
-        Acc2 = send_non_empty_chunk(Acc, Chunk),
-        #lacc{resp = Resp2} = Acc2,
-        last_chunk(Req, Resp2),
-        {stop, Acc2}
+        #lacc{resp = Resp2} = send_non_empty_chunk(Acc, Chunk),
+        {ok, Resp3} = last_chunk(Req, Resp2),
+        {stop, Resp3}
     catch Error ->
-        case Resp of
+        {ok, Resp2} = case Resp of
             undefined ->
                 {Code, _, _} = chttpd:error_info(Error),
                 #lacc{req=Req, headers=Headers} = Acc,
-                {ok, Resp2} = chttpd:start_chunked_response(Req, Code, Headers),
-                Acc2 = Acc#lacc{resp=Resp2, code=Code};
-            _ -> Resp2 = Resp, Acc2 = Acc
+                chttpd:start_chunked_response(Req, Code, Headers);
+            _ ->
+                {ok, Resp}
         end,
-        chttpd:send_chunked_error(Resp2, Error),
-        {stop, Acc2}
+        {ok, Resp3} = chttpd:send_chunked_error(Resp2, Error),
+        {stop, Resp3}
     end.
 
 send_non_empty_chunk(Acc, []) ->


[03/12] couch-mrview commit: updated refs/heads/COUCHDB-3288-remove-public-db-record to 66274de

Posted by da...@apache.org.
Merge remote branch 'cloudant:refactor-mrview-index-get'

This closes #65

Signed-off-by: Eric Avdey <ei...@eiri.ca>


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

Branch: refs/heads/COUCHDB-3288-remove-public-db-record
Commit: e1d13a983a0ba56fcb1eb31c4e4fe56bc3692719
Parents: 15a1ae9 8b1c137
Author: Eric Avdey <ei...@eiri.ca>
Authored: Thu Feb 9 09:57:22 2017 -0400
Committer: Eric Avdey <ei...@eiri.ca>
Committed: Thu Feb 9 09:57:22 2017 -0400

----------------------------------------------------------------------
 src/couch_mrview_index.erl | 149 +++++++++++++++++++---------------------
 1 file changed, 71 insertions(+), 78 deletions(-)
----------------------------------------------------------------------



[05/12] couch-mrview commit: updated refs/heads/COUCHDB-3288-remove-public-db-record to 66274de

Posted by da...@apache.org.
Allow limiting maximum document body size

This is a companion commit to this one:

https://github.com/apache/couchdb-couch/pull/235

COUCHDB-2992


Project: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/commit/398c30e8
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/tree/398c30e8
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/diff/398c30e8

Branch: refs/heads/COUCHDB-3288-remove-public-db-record
Commit: 398c30e8785c3cd880d7d9788d25810dfe626c18
Parents: e1d13a9
Author: Nick Vatamaniuc <va...@apache.org>
Authored: Wed Mar 15 17:55:22 2017 -0400
Committer: Nick Vatamaniuc <va...@apache.org>
Committed: Wed Mar 15 17:55:22 2017 -0400

----------------------------------------------------------------------
 src/couch_mrview_show.erl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/blob/398c30e8/src/couch_mrview_show.erl
----------------------------------------------------------------------
diff --git a/src/couch_mrview_show.erl b/src/couch_mrview_show.erl
index 52e07a7..fee104e 100644
--- a/src/couch_mrview_show.erl
+++ b/src/couch_mrview_show.erl
@@ -132,7 +132,7 @@ send_doc_update_response(Req, Db, DDoc, UpdateName, Doc, DocId) ->
                 _ ->
                     Options = [{user_ctx, Req#httpd.user_ctx}]
             end,
-            NewDoc = couch_doc:from_json_obj({NewJsonDoc}),
+            NewDoc = couch_doc:from_json_obj_validate({NewJsonDoc}),
             couch_doc:validate_docid(NewDoc#doc.id),
             {ok, NewRev} = couch_db:update_doc(Db, NewDoc, Options),
             NewRevStr = couch_doc:rev_to_str(NewRev),


[10/12] couch-mrview commit: updated refs/heads/COUCHDB-3288-remove-public-db-record to 66274de

Posted by da...@apache.org.
Fix unused variables warning

This cleans up the artifacts left after
refactoring of `couch_mrview_index:get/2`


Project: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/commit/5954ef69
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/tree/5954ef69
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/diff/5954ef69

Branch: refs/heads/COUCHDB-3288-remove-public-db-record
Commit: 5954ef69383547f572419c29380495b9a25a5bf4
Parents: 3c70ae9
Author: Eric Avdey <ei...@eiri.ca>
Authored: Fri Mar 31 10:56:03 2017 -0300
Committer: Eric Avdey <ei...@eiri.ca>
Committed: Fri Mar 31 10:56:03 2017 -0300

----------------------------------------------------------------------
 src/couch_mrview_index.erl | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/blob/5954ef69/src/couch_mrview_index.erl
----------------------------------------------------------------------
diff --git a/src/couch_mrview_index.erl b/src/couch_mrview_index.erl
index a65bc94..0473d5d 100644
--- a/src/couch_mrview_index.erl
+++ b/src/couch_mrview_index.erl
@@ -57,8 +57,7 @@ get(info, State) ->
         language = Lang,
         update_seq = UpdateSeq,
         purge_seq = PurgeSeq,
-        views = Views,
-        design_opts = Opts
+        views = Views
     } = State,
     {ok, FileSize} = couch_file:bytes(Fd),
     {ok, ExternalSize} = couch_mrview_util:calculate_external_size(Views),
@@ -70,11 +69,6 @@ get(info, State) ->
     end,
     ActiveSize = couch_btree:size(IdBtree) + LogBtSize + ExternalSize,
 
-    IncDesign = couch_util:get_value(<<"include_design">>, Opts, false),
-    LocalSeq = couch_util:get_value(<<"local_seq">>, Opts, false),
-    SeqIndexed = couch_util:get_value(<<"seq_indexed">>, Opts, false),
-    KeySeqIndexed = couch_util:get_value(<<"keyseq_indexed">>, Opts, false),
-
     UpdateOptions0 = get(update_options, State),
     UpdateOptions = [atom_to_binary(O, latin1) || O <- UpdateOptions0],
 


[12/12] couch-mrview commit: updated refs/heads/COUCHDB-3288-remove-public-db-record to 66274de

Posted by da...@apache.org.
Remove public db record

COUCHDB-3288


Project: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/commit/66274de2
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/tree/66274de2
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/diff/66274de2

Branch: refs/heads/COUCHDB-3288-remove-public-db-record
Commit: 66274de217f64b167c1bdfe0c6a6fc211065fb12
Parents: f08c26a
Author: Paul J. Davis <pa...@gmail.com>
Authored: Wed Feb 1 15:36:16 2017 -0600
Committer: Paul J. Davis <pa...@gmail.com>
Committed: Tue Apr 4 16:06:21 2017 -0500

----------------------------------------------------------------------
 src/couch_mrview.erl                        | 14 +++++++-------
 src/couch_mrview_compactor.erl              |  7 ++-----
 src/couch_mrview_http.erl                   | 10 +++++-----
 src/couch_mrview_show.erl                   | 16 ++++++++++------
 test/couch_mrview_all_docs_tests.erl        |  2 +-
 test/couch_mrview_changes_since_tests.erl   |  2 +-
 test/couch_mrview_collation_tests.erl       |  2 +-
 test/couch_mrview_compact_tests.erl         |  2 +-
 test/couch_mrview_ddoc_validation_tests.erl |  2 +-
 test/couch_mrview_index_changes_tests.erl   |  2 +-
 test/couch_mrview_index_info_tests.erl      |  2 +-
 test/couch_mrview_map_views_tests.erl       |  2 +-
 test/couch_mrview_red_views_tests.erl       |  2 +-
 13 files changed, 33 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/blob/66274de2/src/couch_mrview.erl
----------------------------------------------------------------------
diff --git a/src/couch_mrview.erl b/src/couch_mrview.erl
index 088327c..0f207fb 100644
--- a/src/couch_mrview.erl
+++ b/src/couch_mrview.erl
@@ -360,15 +360,12 @@ get_view_info(Db, DDoc, VName) ->
 
 
 %% @doc refresh a view index
-refresh(#db{name=DbName}, DDoc) ->
-    refresh(DbName, DDoc);
-
-refresh(Db, DDoc) ->
-    UpdateSeq = couch_util:with_db(Db, fun(WDb) ->
+refresh(DbName, DDoc) when is_binary(DbName)->
+    UpdateSeq = couch_util:with_db(DbName, fun(WDb) ->
                     couch_db:get_update_seq(WDb)
             end),
 
-    case couch_index_server:get_index(couch_mrview_index, Db, DDoc) of
+    case couch_index_server:get_index(couch_mrview_index, DbName, DDoc) of
         {ok, Pid} ->
             case catch couch_index:get_state(Pid, UpdateSeq) of
                 {ok, _} -> ok;
@@ -376,7 +373,10 @@ refresh(Db, DDoc) ->
             end;
         Error ->
             {error, Error}
-    end.
+    end;
+
+refresh(Db, DDoc) ->
+    refresh(couch_db:name(Db), DDoc).
 
 compact(Db, DDoc) ->
     compact(Db, DDoc, []).

http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/blob/66274de2/src/couch_mrview_compactor.erl
----------------------------------------------------------------------
diff --git a/src/couch_mrview_compactor.erl b/src/couch_mrview_compactor.erl
index 9ef79b6..3c30d2f 100644
--- a/src/couch_mrview_compactor.erl
+++ b/src/couch_mrview_compactor.erl
@@ -52,10 +52,7 @@ compact(State) ->
         CompactFName = couch_mrview_util:compaction_file(DbName, Sig),
         {ok, Fd} = couch_mrview_util:open_file(CompactFName),
         ESt = couch_mrview_util:reset_index(Db, Fd, State),
-
-        {ok, DbReduce} = couch_btree:full_reduce(Db#db.id_tree),
-        Count = element(1, DbReduce),
-
+        {ok, Count} = couch_db:get_doc_count(Db),
         {ESt, Count}
     end),
 
@@ -290,7 +287,7 @@ swap_compacted(OldState, NewState) ->
 
     unlink(OldState#mrst.fd),
     erlang:demonitor(OldState#mrst.fd_monitor, [flush]),
-    
+
     {ok, NewState#mrst{fd_monitor=Ref}}.
 
 

http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/blob/66274de2/src/couch_mrview_http.erl
----------------------------------------------------------------------
diff --git a/src/couch_mrview_http.erl b/src/couch_mrview_http.erl
index 7e3fd78..e5638fe 100644
--- a/src/couch_mrview_http.erl
+++ b/src/couch_mrview_http.erl
@@ -103,11 +103,11 @@ handle_view_changes_req(#httpd{path_parts=[_,<<"_design">>,DDocName,<<"_view_cha
 handle_view_req(#httpd{method='GET',
                       path_parts=[_, _, DDocName, _, VName, <<"_info">>]}=Req,
                 Db, _DDoc) ->
-
+    DbName = couch_db:name(Db),
     DDocId = <<"_design/", DDocName/binary >>,
-    {ok, Info} = couch_mrview:get_view_info(Db#db.name, DDocId, VName),
+    {ok, Info} = couch_mrview:get_view_info(DbName, DDocId, VName),
 
-    FinalInfo = [{db_name, Db#db.name},
+    FinalInfo = [{db_name, DbName},
                  {ddoc, DDocId},
                  {view, VName}] ++ Info,
     chttpd:send_json(Req, 200, {FinalInfo});
@@ -212,7 +212,7 @@ is_restricted(Db, _) ->
     couch_db:is_system_db(Db).
 
 is_public_fields_configured(Db) ->
-    DbName = ?b2l(Db#db.name),
+    DbName = ?b2l(couch_db:name(Db)),
     case config:get("couch_httpd_auth", "authentication_db", "_users") of
     DbName ->
         UsersDbPublic = config:get("couch_httpd_auth", "users_db_public", "false"),
@@ -237,7 +237,7 @@ do_all_docs_req(Req, Db, Keys, NS) ->
     {ok, Resp} = couch_httpd:etag_maybe(Req, fun() ->
         Max = chttpd:chunked_response_buffer_size(),
         VAcc0 = #vacc{db=Db, req=Req, threshold=Max},
-        DbName = ?b2l(Db#db.name),
+        DbName = ?b2l(couch_db:name(Db)),
         UsersDbName = config:get("couch_httpd_auth",
                                  "authentication_db",
                                  "_users"),

http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/blob/66274de2/src/couch_mrview_show.erl
----------------------------------------------------------------------
diff --git a/src/couch_mrview_show.erl b/src/couch_mrview_show.erl
index 1ebc85b..60e8a2c 100644
--- a/src/couch_mrview_show.erl
+++ b/src/couch_mrview_show.erl
@@ -364,13 +364,17 @@ json_apply_field({Key, NewValue}, [], Acc) ->
 
 % This loads the db info if we have a fully loaded db record, but we might not
 % have the db locally on this node, so then load the info through fabric.
-json_req_obj(Req, #db{main_pid=Pid}=Db) when is_pid(Pid) ->
-    chttpd_external:json_req_obj(Req, Db);
 json_req_obj(Req, Db) ->
-    % use a separate process because we're already in a receive loop, and
-    % json_req_obj calls fabric:get_db_info()
-    spawn_monitor(fun() -> exit(chttpd_external:json_req_obj(Req, Db)) end),
-    receive {'DOWN', _, _, _, JsonReq} -> JsonReq end.
+    case couch_db:is_clustered(Db) of
+        true ->
+            % use a separate process because we're already in a receive loop,
+            % and json_req_obj calls fabric:get_db_info()
+            JRO = fun() -> exit(chttpd_external:json_req_obj(Req, Db)) end,
+            spawn_monitor(JRO),
+            receive {'DOWN', _, _, _, JsonReq} -> JsonReq end;
+        false ->
+            chttpd_external:json_req_obj(Req, Db)
+    end.
 
 last_chunk(Req, undefined) ->
     chttpd:send_response(Req, 200, [], <<"">>);

http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/blob/66274de2/test/couch_mrview_all_docs_tests.erl
----------------------------------------------------------------------
diff --git a/test/couch_mrview_all_docs_tests.erl b/test/couch_mrview_all_docs_tests.erl
index 5e35279..bf8eb7e 100644
--- a/test/couch_mrview_all_docs_tests.erl
+++ b/test/couch_mrview_all_docs_tests.erl
@@ -25,7 +25,7 @@ setup() ->
 
 teardown(Db) ->
     couch_db:close(Db),
-    couch_server:delete(Db#db.name, [?ADMIN_CTX]),
+    couch_server:delete(couch_db:name(Db), [?ADMIN_CTX]),
     ok.
 
 

http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/blob/66274de2/test/couch_mrview_changes_since_tests.erl
----------------------------------------------------------------------
diff --git a/test/couch_mrview_changes_since_tests.erl b/test/couch_mrview_changes_since_tests.erl
index 8b11e3d..7e2f321 100644
--- a/test/couch_mrview_changes_since_tests.erl
+++ b/test/couch_mrview_changes_since_tests.erl
@@ -25,7 +25,7 @@ setup() ->
 
 teardown(Db) ->
     couch_db:close(Db),
-    couch_server:delete(Db#db.name, [?ADMIN_CTX]),
+    couch_server:delete(couch_db:name(Db), [?ADMIN_CTX]),
     ok.
 
 

http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/blob/66274de2/test/couch_mrview_collation_tests.erl
----------------------------------------------------------------------
diff --git a/test/couch_mrview_collation_tests.erl b/test/couch_mrview_collation_tests.erl
index c4a714d..5c8cb54 100644
--- a/test/couch_mrview_collation_tests.erl
+++ b/test/couch_mrview_collation_tests.erl
@@ -64,7 +64,7 @@ setup() ->
 
 teardown(Db) ->
     couch_db:close(Db),
-    couch_server:delete(Db#db.name, [?ADMIN_CTX]),
+    couch_server:delete(couch_db:name(Db), [?ADMIN_CTX]),
     ok.
 
 

http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/blob/66274de2/test/couch_mrview_compact_tests.erl
----------------------------------------------------------------------
diff --git a/test/couch_mrview_compact_tests.erl b/test/couch_mrview_compact_tests.erl
index 079639f..7cd5de8 100644
--- a/test/couch_mrview_compact_tests.erl
+++ b/test/couch_mrview_compact_tests.erl
@@ -24,7 +24,7 @@ setup() ->
 
 teardown(Db) ->
     couch_db:close(Db),
-    couch_server:delete(Db#db.name, [?ADMIN_CTX]),
+    couch_server:delete(couch_db:name(Db), [?ADMIN_CTX]),
     ok.
 
 

http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/blob/66274de2/test/couch_mrview_ddoc_validation_tests.erl
----------------------------------------------------------------------
diff --git a/test/couch_mrview_ddoc_validation_tests.erl b/test/couch_mrview_ddoc_validation_tests.erl
index 028e0be..5ac3e7e 100644
--- a/test/couch_mrview_ddoc_validation_tests.erl
+++ b/test/couch_mrview_ddoc_validation_tests.erl
@@ -21,7 +21,7 @@ setup() ->
 
 teardown(Db) ->
     couch_db:close(Db),
-    couch_server:delete(Db#db.name, [?ADMIN_CTX]),
+    couch_server:delete(couch_db:name(Db), [?ADMIN_CTX]),
     ok.
 
 ddoc_validation_test_() ->

http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/blob/66274de2/test/couch_mrview_index_changes_tests.erl
----------------------------------------------------------------------
diff --git a/test/couch_mrview_index_changes_tests.erl b/test/couch_mrview_index_changes_tests.erl
index 8f0c296..2701e0c 100644
--- a/test/couch_mrview_index_changes_tests.erl
+++ b/test/couch_mrview_index_changes_tests.erl
@@ -22,7 +22,7 @@ setup() ->
 
 teardown(Db) ->
     couch_db:close(Db),
-    couch_server:delete(Db#db.name, [?ADMIN_CTX]),
+    couch_server:delete(couch_db:name(Db), [?ADMIN_CTX]),
     ok.
 
 changes_index_test() ->

http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/blob/66274de2/test/couch_mrview_index_info_tests.erl
----------------------------------------------------------------------
diff --git a/test/couch_mrview_index_info_tests.erl b/test/couch_mrview_index_info_tests.erl
index 3f88972..c994df9 100644
--- a/test/couch_mrview_index_info_tests.erl
+++ b/test/couch_mrview_index_info_tests.erl
@@ -28,7 +28,7 @@ setup() ->
 
 teardown({Db, _}) ->
     couch_db:close(Db),
-    couch_server:delete(Db#db.name, [?ADMIN_CTX]),
+    couch_server:delete(couch_db:name(Db), [?ADMIN_CTX]),
     ok.
 
 

http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/blob/66274de2/test/couch_mrview_map_views_tests.erl
----------------------------------------------------------------------
diff --git a/test/couch_mrview_map_views_tests.erl b/test/couch_mrview_map_views_tests.erl
index 3a19928..229af18 100644
--- a/test/couch_mrview_map_views_tests.erl
+++ b/test/couch_mrview_map_views_tests.erl
@@ -24,7 +24,7 @@ setup() ->
 
 teardown(Db) ->
     couch_db:close(Db),
-    couch_server:delete(Db#db.name, [?ADMIN_CTX]),
+    couch_server:delete(couch_db:name(Db), [?ADMIN_CTX]),
     ok.
 
 

http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/blob/66274de2/test/couch_mrview_red_views_tests.erl
----------------------------------------------------------------------
diff --git a/test/couch_mrview_red_views_tests.erl b/test/couch_mrview_red_views_tests.erl
index 3100785..b836861 100644
--- a/test/couch_mrview_red_views_tests.erl
+++ b/test/couch_mrview_red_views_tests.erl
@@ -24,7 +24,7 @@ setup() ->
 
 teardown(Db) ->
     couch_db:close(Db),
-    couch_server:delete(Db#db.name, [?ADMIN_CTX]),
+    couch_server:delete(couch_db:name(Db), [?ADMIN_CTX]),
     ok.
 
 


[06/12] couch-mrview commit: updated refs/heads/COUCHDB-3288-remove-public-db-record to 66274de

Posted by da...@apache.org.
Merge branch 'couchdb-2992'

Closes #69


Project: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/commit/49533ef9
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/tree/49533ef9
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/diff/49533ef9

Branch: refs/heads/COUCHDB-3288-remove-public-db-record
Commit: 49533ef9d7a536003faabf9640861e0ecf45eb37
Parents: e1d13a9 398c30e
Author: Nick Vatamaniuc <va...@apache.org>
Authored: Wed Mar 15 22:48:49 2017 -0400
Committer: Nick Vatamaniuc <va...@apache.org>
Committed: Wed Mar 15 22:48:49 2017 -0400

----------------------------------------------------------------------
 src/couch_mrview_show.erl | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------



[08/12] couch-mrview commit: updated refs/heads/COUCHDB-3288-remove-public-db-record to 66274de

Posted by da...@apache.org.
Merge remote-tracking branch 'cloudant/undef-lacc-list-function'


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

Branch: refs/heads/COUCHDB-3288-remove-public-db-record
Commit: f897fdc2cab02ac5ed7950cb25c36f2cafb86b38
Parents: 49533ef c01d4c0
Author: Benjamin Bastian <be...@gmail.com>
Authored: Thu Mar 16 10:18:03 2017 -0700
Committer: Benjamin Bastian <be...@gmail.com>
Committed: Thu Mar 16 10:18:03 2017 -0700

----------------------------------------------------------------------
 src/couch_mrview_show.erl | 64 +++++++++++++++++++++++++++++++++---------
 1 file changed, 50 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-couch-mrview/blob/f897fdc2/src/couch_mrview_show.erl
----------------------------------------------------------------------